在我们的Web应用程序中,我选择iu-Cans-CA
区域设置作为伪字段,其中字符串资源关键字也用作值。这是为自动化测试提供帮助。要为此语言环境生成.resx
,我正在使用T4模板。获取T4生成的.resx文件以生成
.resx
生成正确,但有些错误:资源文件没有像其他编译到程序集中real翻译是。我终于找出原因。由于T4模板来生成.resx
,该.csproj
包含此:
<EmbeddedResource Include="Strings.iu-Cans-CA.resx">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Strings.iu-Cans-CA.tt</DependentUpon>
</EmbeddedResource>
出于某种原因,这是防止.resx
进行编译。如果我更新.csproj
这一点,确实编译:
<EmbeddedResource Include="Strings.iu-Cans-CA.resx">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</EmbeddedResource>
我希望这将是它的结束,但现在每当.csproj
在Visual Studio中加载,项目文件再次更新到前一个结构,再次打破资源文件的编译。
有没有办法修复东西,以便生成/依赖.resx
作为嵌入资源正确编译?或者有没有办法永久打破依赖关系,因此它不会得到恢复?我意识到我可以重写.tt
,因此它会生成一个不同名称的文件,但是我宁愿找到一个不需要这个的解决方案,因为这是T4的非典型用法,我想避免太多的WTF。
Bah,在Connect网站上关闭为“无法修复”。有时候我想知道为什么我打扰向黑洞提交错误:https://connect.microsoft.com/VisualStudio/feedback/details/801997/t4-generated-resx-files-not-compiling – Jacob