【问题标题】:.NET Core 1.1 Resource File Issue.NET Core 1.1 资源文件问题
【发布时间】:2017-05-05 14:59:16
【问题描述】:

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

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

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

【问题讨论】:

    标签: .net localization internationalization


    【解决方案1】:

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

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

    【讨论】:

    • 是的!有时候就是这么简单!
    【解决方案2】:

    删除当前在您的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) Resource.resx,(2) Resource.en.resx,和 (3) Resource.es.resx。 Resource.resx 文件包含英语的所有键和值。由于默认为英文,创建 Resource.en.resx 文件不是重复吗?我知道 Resource.resx 是为了不变文化。
    • 嗨@Seth,如果Resource.en.resx 是默认语言,您可以删除它。只需在Resource.resx 中包含默认字符串
    • 嗨,您能否提及一些博客文章或一些存储库以了解最佳实践?
    【解决方案3】:

    我将 VS2019 与 .Net Standard 2.0 一起使用,但仍然存在此错误。 我已经尝试过,...删除文件,清理,重建。但错误仍然存​​在。

    我最终使用 ResXManager 效果非常好,它可以从 Visual Studio 市场获得。

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

    为 ResXManager 团队点赞!

    【讨论】:

    • 可能是 Visual Studio 重新启动(安装 ResXManager 需要),但是在安装 ResXManager 后,Visual Studio 甚至在 Intellisense 中也开始识别资源,恼人的错误神奇地消失了。很好的建议,@Hugo!而且这个工具看起来很棒!
    • 安装它也为我解决了这个问题......
    【解决方案4】:

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

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

    就是这样!

    出现错误是因为我在测试一些东西时将资源文件的 Access Modifierno code generation 更改为 public

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 2020-04-30
      • 1970-01-01
      • 2018-07-25
      • 2017-04-28
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2018-01-24
      相关资源
      最近更新 更多