需要依赖SDK项目吗?

问题描述 投票:0回答:1

将 csproj 文件转换为新的 SDK 项目时,EnableDefaultItems 为 true,所有资源、cs 文件等都会自动包含在内。所以基本上项目文件几乎是空的,这很好。

现在的问题是,Visual Studio 认为 .resx 文件和 Resources.designer.cs 文件之间没有任何联系,并且不会自动更新它。

为了解决这个问题,我需要添加这个 DependsUpon 语句

<ItemGroup>
  <Compile Update="Properties\Resources.Designer.cs">
    <DesignTime>True</DesignTime>
    <AutoGen>True</AutoGen>
    <DependentUpon>Resources.resx</DependentUpon>
  </Compile>
</ItemGroup>
<ItemGroup>
  <EmbeddedResource Update="Properties\Resources.resx">
    <Generator>ResXFileCodeGenerator</Generator>
    <LastGenOutput>Resources.Designer.cs</LastGenOutput>
  </EmbeddedResource>
</ItemGroup>

使用 UI 创建资源时也会自动插入。是否有属性或其他方式让我不必为我的所有资源定义它?

c#
1个回答
3
投票

你可以试试这个:

<Compile Update="**\*.Designer.cs">
  <DesignTime>True</DesignTime>
  <AutoGen>True</AutoGen>
  <DependentUpon>$([System.String]::Copy("%(Filename)").Replace(".Designer", "")).resx</DependentUpon>
</Compile>

这将使项目中的所有

*.Designer.cs
文件显示为同一文件夹中
*.resx
文件下的子项。

© www.soinside.com 2019 - 2024. All rights reserved.