表单的resx文件中存储的名称/值对会发生什么?在编译项目时它们是否被编译成二进制文件?
对于我的特定项目,我希望能够手动编辑其中一个值而无需重新编译(app.config-style),是否有一种简单的方法可以执行此操作?
编辑:有些人似乎没有得到我的问题。在执行WinForms时,如果InitializeComponents()内部的设置依赖于表单的资源文件,只需将构建操作设置为始终复制,将内容类型设置为内容就会破坏表单。我确信有一个简单的解决方案,但是在对资源文件感到困惑之前没有使用过资源文件。
答案 0 :(得分:4)
如果将值放在.resx文件中,默认情况下会将它们编译到程序集(或卫星资源程序集)中。
如果您希望能够在运行时编辑值,则应该使用app.config或注册表。我个人更喜欢app.config文件。
将值放入app.config文件的最简单方法是使用项目属性中的“设置”选项卡。
如果您坚持将值保存在.resx文件中,我猜您可以将该特定.resx文件视为XML内容文件,只需将其复制到输出目录即可。我不知道有哪些框架类可以帮助您解析此文件并使用其内容。您可能不得不求助于XmlDocument和您自己的XL解析来提取/修改值。
答案 1 :(得分:2)
确定在任何文本编辑器中打开它,它只是xml。你可以告诉VS不要将它们嵌入属性中。
答案 2 :(得分:0)
转到Visual Studio中.resx文件的属性,并将Build Action设置为Content。这应该设置为不编译,您将能够通过该站点复制.resx文件并随时修改它。
您可能希望清除项目中的所有已编译资源,我不确定ASP.NET是否会首先查找这些资源,因为它们已经编译过一次。
编辑:刚看到你引用的是WinForms,不确定。