无需构建即可使用 .NET 资源
我有带有 .resx 文件的应用程序。 Resx 文件是简单的 XML,但在构建资源后保存到程序集。因此,为了更改资源,我需要重建我的资源程序集。有没有办法直接使用 resx 文件中的资源?
I have application with .resx file. Resx file is simple XML, but after buliding resources save to assembly. So to changing resources i need rebuild my resource assemblies. Is there any way to use resources direct from resx file ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用
ResourceManager
类访问资源,则可以使用resgen
将.resx
文件编译为。资源
文件。然后,您可以使用ResourceManager.CreateFileBasedResourceManager
而不是new ResourceManager(...)
创建ResourceManager
类的新实例。这允许您指定资源文件名和要在其中搜索的目录。例如,请查看本教程中的方法 B。
If you are using the
ResourceManager
class to access your resources, you can use theresgen
to compile your.resx
file to a.resources
file. You can then create a new instance of theResourceManager
class usingResourceManager.CreateFileBasedResourceManager
instead ofnew ResourceManager(...)
. This allows you to specify a resource file name and a directory to search within.For an example, take a look at approach B in this tutorial.
正如 mdm 提到的但没有明确写道否,如果没有编译或没有
ResourceManager.CreateFileBasedResourceManager
,你就无法做到这一点。资源在 .resx 部分中有一个 XML 结构,但这部分只是向编译器显示在哪里可以找到应包含的文件,并且它仅存在于您的项目中,而不是在构建之后。
资源文件被定义为嵌入式资源,意味着它嵌套在程序集中。任何更改都将导致需要新的编译。
As mdm mentioned but not explicit wrote No you can't do that without compilation or without a
ResourceManager.CreateFileBasedResourceManager
.The Resource has a XML structure in the .resx part but this parts just shows the compiler where to find the files which should be included and it only exists in your project and not after the build.
A Resource file is defined as a embedded resource, means it is nested into a assembly. Any change will result in a need for a new compilation.