Dot-Net

.NET Core 1.1 資源文件問題

  • March 23, 2021

在我的 .NET Core 類庫項目中,當資源文件名中包含點時,資源文件不會更新。例如,當我在 .NET Core 項目中添加Resources.en.resxResources.es.resx文件時,自定義工具無法生成或更新 C# 資源文件。這是錯誤消息:

自定義工具 ResXFileCodeGenerator 無法為輸入文件“Resources.en.resx”生成輸出,但未記錄特定錯誤。

如果您知道任何解決方法或解決方法,請指出正確的方向

刪除目前Resources目錄中的所有 .resx 文件。

現在轉到您的Resources目錄並右鍵點擊Add > New Item.

在表格底部選擇Resource File並輸入文件名。重要的是你第一次得到正確的名字並且不要重命名。您可以使用類似Resource.resx.

這個第一個Resource.resx文件應該有自己的設計器類。它還需要用於項目本地化的所有鍵和值,因此如果您有現有的Resource.en.resx,則可以將其中的值複製並粘貼到該項目中。

如果您需要IStringLocalizer<Resource>,或者換句話說,您需要以Resource某種方式引用該類,那麼您將需要轉到解決方案資源管理器並左鍵點擊Resource.resx. 在屬性框中有一個名為“自定義工具”的欄位。如果您希望從 resx 生成可公開訪問的類,則需要將其從 更改ResXFileCodeGeneratorPublicResXFileCodeGenerator.

現在您可以添加單獨Resource.ja.resxResource.es.resx文件。這些不需要它們上執行自定義工具ResXFileCodeGenerator,因此您可以將其從屬性中刪除。這將修復您的錯誤消息。

只需解除安裝項目並重新載入它,錯誤就會消失。

  1. 在解決方案資源管理器中右鍵點擊項目 > 解除安裝項目
  2. 在解決方案資源管理器中右鍵點擊項目 > 重新載入項目

引用自:https://stackoverflow.com/questions/43808153