如何在 SDK 样式项目中为项目资源更新设计器文件?
How do I make the designer file update for project resources in an SDK-style project?
我把我的VB项目转换成一个SDK风格的项目,一切都很顺利,直到我更新了我的My Project\Resources.resx
文件,发现设计器文件不会更新。我需要进行哪些更改才能使设计器文件随 resx 文件的更改而更新?
我在此处向 Microsoft 提出的一个问题中的一个代码片段中收集了部分答案:https://developercommunity.visualstudio.com/t/vs-should-not-bloat-sdk-project-files-with-resx-de/574773
部分来自检查 non-SDK VB 项目的内容,其中包含嵌入式资源。
添加到项目文件的以下片段将指示 Visual Studio 自动更新 Resources.resx 的设计器文件:
<ItemGroup>
<Compile Update="My Project\Resources.Designer.vb">
<AutoGen>true</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
我最初写了一个更通用的块(基于link中的material):
<Compile Update="**\*. Designer.vb">
<DependentUpon>$([System.String]::Copy('%(FileName)'). Replace('. Designer', '.resx'))</DependentUpon>
<LastGenOutput>$([System.String]::Copy('%(FileName)')). Designer.vb</LastGenOutput>
(每行替换上面的等价行)
但我发现 Visual Studio 将特定资源文件的块写入项目文件(正如 link 抱怨的那样),因此只将特定资源文件的块放入项目文件似乎更经济resx/designer 一对,尤其是只有一对的时候。
我把我的VB项目转换成一个SDK风格的项目,一切都很顺利,直到我更新了我的My Project\Resources.resx
文件,发现设计器文件不会更新。我需要进行哪些更改才能使设计器文件随 resx 文件的更改而更新?
我在此处向 Microsoft 提出的一个问题中的一个代码片段中收集了部分答案:https://developercommunity.visualstudio.com/t/vs-should-not-bloat-sdk-project-files-with-resx-de/574773
部分来自检查 non-SDK VB 项目的内容,其中包含嵌入式资源。
添加到项目文件的以下片段将指示 Visual Studio 自动更新 Resources.resx 的设计器文件:
<ItemGroup>
<Compile Update="My Project\Resources.Designer.vb">
<AutoGen>true</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
我最初写了一个更通用的块(基于link中的material):
<Compile Update="**\*. Designer.vb">
<DependentUpon>$([System.String]::Copy('%(FileName)'). Replace('. Designer', '.resx'))</DependentUpon>
<LastGenOutput>$([System.String]::Copy('%(FileName)')). Designer.vb</LastGenOutput>
(每行替换上面的等价行)
但我发现 Visual Studio 将特定资源文件的块写入项目文件(正如 link 抱怨的那样),因此只将特定资源文件的块放入项目文件似乎更经济resx/designer 一对,尤其是只有一对的时候。