我有一個包含資源(本地化/全球化)的簡單專案。
*.csproj檔案部分如下所示:
<ItemGroup>
<EmbeddedResource Update="Resources\ErrorMessages.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>ErrorMessages.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Compile Update="Resources\ErrorMessages.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>ErrorMessages.resx</DependentUpon>
</Compile>
</ItemGroup>
所以,據我所知,ErrorMessages.Designer.cs檔案應該總是被編譯,但是當我嘗試洗掉它并構建專案時,這個檔案永遠不會被編譯(創建)并且構建失敗。
我以為我可以隨意添加這些檔案,.gitignore但據我所知,我的思維程序是不正確的,不是嗎?
uj5u.com熱心網友回復:
當設計器檔案表示為 C# 代碼的檔案確實發生更改(保存/更新等)時,將(重新)創建設計器檔案。在這種情況下,只有在保存/更改/更新 ErrorMessages.resx 檔案時才會重新生成該檔案。這不會在構建期間發生,而只會在用戶主動執行此操作時發生。您需要保留設計器檔案(也在源代碼管理中),否則您的構建將失敗 - 正如您所發現的。
(注意這不要與 Roslyn 源生成器混淆,其中生成的檔案(通常)不會被保留或檢入源控制)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354063.html
