我有一个非常大的解决方案(>100 个项目),它被翻译成 10 多种语言。在构建过程中生成所有必要的附属程序集的最佳方法是什么?
我知道我可以在他们的相关项目中包含本地化的 RESX 文件,但这会给开发人员带来很多麻烦。翻译由一个远程团队管理,他们独立地将它们检查到源代码控制中。这也会在每次添加新语言时产生大量工作,因为每个项目都必须进行修改以包含新的文化特定资源。
是否有任何构建后工具可以搜索特定于文化的 RESX 文件,将它们分组到项目中并一次构建附属程序集?
如果没有,我想我可以使用DependentUpon属性在主资源文件下的 Visual Studio 解决方案资源管理器中隐藏本地化资源。这不能在 Visual Studio UI 中完成,所以我想我必须构建一个工具,将这种模式批量应用于所有项目中的所有资源文件。生成的项目文件如下所示:
<ItemGroup>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.de.resx">
<DependentUpon>Resources.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.fr.resx">
<DependentUpon>Resources.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
嵌套资源在解决方案资源管理器中有一个意外图标,但至少默认情况下它们是隐藏的。