私たちの Web アプリケーションではiu-Cans-CA
、文字列リソース キーが値としても使用される疑似ロケールとしてロケールを採用しています。これは、自動化テストを支援するためのものです。このロケールの を生成する.resx
ために、T4 テンプレートを使用しています。
は.resx
正しく生成されますが、何か問題があります。リソース ファイルは、他の実際の翻訳のようにアセンブリにコンパイルされていません。やっと原因がわかりました。の生成には 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 を避けたいため、これを必要としないソリューションを見つけることを好みます。