我们在visual studio解决方案中拥有大量C#项目。对于很多这些,我们有一个名为'TextResources.resx'的资源文件。这些已在过去翻译过来创建了几个相关的resx文件,例如'TextResources.fr.resx'。对于这些较旧的项目,这些翻译的resx文件显示为默认英语TextResources.resx的子项,但是对于几个新项目,翻译的项目显示为单独的(相同的树级别)项目。
希望这个图表能够解释:
旧项目:
- TextResources.resx
- TextResources.fr.resx
- TextResources.de.resx
新项目:
- TextResources.fr.resx
- TextResources.de.resx
- TextResources.resx
这不仅看起来很奇怪,而且对于这么多项目来说有点混乱。任何人都知道为什么它将一些翻译后的resx文件分组而不是其他文件?
答案 0 :(得分:5)
我遇到了同样的问题,也没有找到答案。
我最终手动编辑了项目(.csproj)文件。
<EmbeddedResource Include="Folder\TextResources.de.resx">
<DependentUpon>TextResources.resx</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
添加
<DependentUpon></DependentUpon>
标记并输出没有前导文件夹的“父”资源文件的名称。
答案 1 :(得分:0)
此解决方案适用于 Visual Studio 2019
<!-- Main Resource file -->
<ItemGroup>
<EmbeddedResource Update="Path\TextResources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>TextResources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<!-- Resource Designer class -->
<ItemGroup>
<Compile Update="Path\TextResources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>TextResources.resx</DependentUpon>
</Compile>
</ItemGroup>
<!-- Nested Resources files -->
<ItemGroup>
<EmbeddedResource Update="Path\TextResources.en.resx">
<DependentUpon>Path\TextResources.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Path\TextResources.de.resx">
<DependentUpon>Path\TextResources.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Path\TextResources.ar.resx">
<DependentUpon>Path\TextResources.resx</DependentUpon>
</EmbeddedResource>
</ItemGroup>