.NET Core 1.1资源文件问题

时间:2017-05-05 14:59:17

标签: .net localization internationalization

在我的.NET Core类库项目中,当资源文件名中包含一个点时,资源文件不会更新。例如,当我在.NET Core项目中添加Resources.en.resxResources.es.resx文件时,自定义工具无法生成或更新C#资源文件。这是错误消息:

自定义工具ResXFileCodeGenerator无法为输入文件“Resources.en.resx”生成输出,但未记录特定错误。

如果您知道任何解决方法或任何修复方法,请指出正确的方向

4 个答案:

答案 0 :(得分:4)

删除当前位于Resources目录中的所有.resx文件。

现在转到Resources目录并右键单击Add > New Item

选择Resource File并在表单底部输入文件名。重要的是你第一次得到正确的名称,不要重命名。您可以使用类似Resource.resx的内容。

这个第一个Resource.resx文件应该有自己的设计器类。它还需要项目本地化的所有键和值,因此如果您有一个现有的Resource.en.resx,您可以将其中的值复制并粘贴到此项中。

如果您需要IStringLocalizer<Resource>,或者换句话说,您需要以某种方式引用Resource类,那么您需要转到解决方案资源管理器并左键单击Resource.resx。在“属性”框中,有一个名为“自定义工具”的字段。如果您希望从resx生成可公开访问的类,则需要将其从ResXFileCodeGenerator更改为PublicResXFileCodeGenerator

现在,您可以添加单个Resource.ja.resxResource.es.resx个文件。这些需要在其上运行自定义工具ResXFileCodeGenerator,以便您可以从属性中删除它。这将修复您的错误消息。

答案 1 :(得分:4)

我将VS2019与.Net Standard 2.0结合使用,但仍然存在此错误。 我试着尝试,...删除文件,清理,重建。但是错误仍然存​​在。

我最终使用ResXManager进行了出色的工作,可以从Visual Studio市场上获得它。

https://marketplace.visualstudio.com/items?itemName=TomEnglert.ResXManager

为ResXManager团队做好准备!

答案 2 :(得分:0)

只需卸载项目并重新加载它,错误就会消失。

  1. 在解决方案资源管理器中右键单击项目>卸载项目
  2. 在解决方案资源管理器中右键单击项目>重新加载项目

答案 3 :(得分:0)

根据@David Rawson 的回答,我已经能够通过执行以下操作来解决错误:

  1. 在解决方案资源管理器中点击错误消息中提到的 Resource file
  2. 点击 F4(打开 Properties window
  3. 关于 <reset to default> 上的自定义工具

就是这样!

出现错误是因为我在测试某些内容时将资源文件的 Access Modifier无代码生成更改为公开。 >