【问题标题】:WinForms: What happens to the values stored in .resx files?WinForms:存储在 .resx 文件中的值会发生什么变化?
【发布时间】:2008-10-20 18:10:17
【问题描述】:

存储在表单的 resx 文件中的名称/值对会发生什么变化?当我编译我的项目时,它们是否被编译成二进制文件?

对于我的特定项目,我希望能够手动编辑其中一个值而无需重新编译(app.config-style),有没有一种简单的方法可以做到这一点?

编辑:有些人似乎没有得到我的问题。在执行 WinForms 时,如果 InitializeComponents() 内部的设置依赖于表单的资源文件,只需将构建操作设置为始终复制并将内容类型设置为 content 会破坏表单。我确信有一个简单的解决方案,但之前没有使用过资源文件,我对它会是什么感到困惑。

【问题讨论】:

    标签: .net winforms


    【解决方案1】:

    如果您将值放在 .resx 文件中,默认情况下它们会编译到您的程序集(或附属资源程序集)中。

    如果您希望能够在运行时编辑值,您应该真正使用 app.config 或注册表。我个人更喜欢 app.config 文件。

    将值放入 app.config 文件的最简单方法是使用项目属性中的“设置”选项卡。

    如果您坚持将值保存在 .resx 文件中,我想您可以将该特定 .resx 文件视为 XML 内容文件,然后将其复制到输出目录。不过,我不确定有哪些框架类可以帮助您解析此文件并使用其内容。您可能不得不求助于 XmlDocument 和您自己的 XL 解析来提取/修改值。

    【讨论】:

    • 我同意在大多数情况下使用 app.config 文件,不过这里别无选择,它是第三方控件
    • 我怀疑任何第三方控件都会消耗原始 .resx 文件。我怀疑他们会期望资源组装。不过,我可能错了。
    • 这绝对是您最好的“快速”实现,无需大量额外代码。
    【解决方案2】:

    当然可以在任何文本编辑器中打开它,它只是 xml。您可以告诉 VS 不要将它们嵌入到属性中。

    【讨论】:

    【解决方案3】:

    在 Visual Studio 中转到 .resx 文件的属性并将生成操作设置为内容。这应该将其设置为不编译,您将能够使用站点复制 .resx 文件并随时修改它。

    您可能想从项目中清除任何已编译的资源,我不确定 ASP.NET 是否会首先查找这些资源,因为它们已经编译过一次。

    编辑:刚刚看到您在引用 WinForms,对此不确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2018-12-30
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      相关资源
      最近更新 更多