【问题标题】:Using Resources (resx) Inside a ClassLibrary, that can be changed without recompiling在 ClassLibrary 中使用资源 (resx),无需重新编译即可更改
【发布时间】:2013-02-26 18:46:34
【问题描述】:

我需要创建一个 ClassLibrary,以包含不同的资源文件 (resx)。这需要完成,所以我可以在多个项目中重复使用这些资源。

在阅读了很长一段时间关于如何实现这一点之后,我仍然离答案很远。

请注意,如果我想更改值,我需要以一种无需重新编译项目的方式来实现这一点

有没有一种我想念的简单方法来实现这一点?

【问题讨论】:

  • 我已尝试使用 Build Action = "Content" 并始终复制,但我得到了 MissingCulture 抛出的异常......
  • 短语“无需重新编译”仅包含在标题中,而不是问题正文中。看起来这是最重要的部分。当它丢失时,它会从根本上改变问题。所以请澄清一下。
  • 感谢您的评论.. 现在补充说:)

标签: c# .net resources resx


【解决方案1】:

讨厌成为坏消息的传播者,但恐怕您正试图将 RESX 文件用于其他用途,而不是它们的设计用途。 RESX 文件被编译成 .resources 文件,然后在构建过程中嵌入到程序集中。换句话说,如果您重新编译,您将不会看到对模块中反映的 resx 文件所做的任何更改。

【讨论】:

    【解决方案2】:

    RESX 文件的好处远不止提供与已部署解决方案紧密耦合的已编译文化/语言文本。它们有可能提供在软件开发过程之外管理的简单而灵活的内容集。这里的一些观点:

    What are the benefits of resource(.resx) files?

    是的,您可以使用您的 RESX 文件而无需编译它们。见这里:

    Edit ASP.NET MVC 3 resx files in deployment server without recompiling

    是的,您可以在不同项目之间共享 RESX 文件,甚至可以滚动您自己的资源管理器。您可以维护备用资源集,根据例如用户上下文提供备用内容。我参与了一个项目,我们按照这些思路实施了一些影响很大的项目,在我的案例中,该解决方案用于提供白标。一些细节可以帮助您从这里开始:

    http://msdn.microsoft.com/en-us/library/aa905797.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-26
      • 2017-10-20
      • 2023-03-12
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多