在我的.NET Core类库项目中,当资源文件名中包含一个点时,资源文件不会更新。例如,当我在.NET Core项目中添加Resources.en.resx
或Resources.es.resx
文件时,自定义工具无法生成或更新C#资源文件。这是错误消息:
自定义工具ResXFileCodeGenerator无法为输入文件“Resources.en.resx”生成输出,但未记录特定错误。
如果您知道任何解决方法或任何修复方法,请指出正确的方向
答案 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.resx
,Resource.es.resx
个文件。这些不需要在其上运行自定义工具ResXFileCodeGenerator
,以便您可以从属性中删除它。这将修复您的错误消息。
答案 1 :(得分:4)
我将VS2019与.Net Standard 2.0结合使用,但仍然存在此错误。 我试着尝试,...删除文件,清理,重建。但是错误仍然存在。
我最终使用ResXManager进行了出色的工作,可以从Visual Studio市场上获得它。
https://marketplace.visualstudio.com/items?itemName=TomEnglert.ResXManager
为ResXManager团队做好准备!
答案 2 :(得分:0)
只需卸载项目并重新加载它,错误就会消失。
答案 3 :(得分:0)
根据@David Rawson 的回答,我已经能够通过执行以下操作来解决错误:
Resource file
Properties window
)<reset to default>
上的自定义工具就是这样!
出现错误是因为我在测试某些内容时将资源文件的 Access Modifier
从无代码生成更改为公开。 >