使用 Visual Studio 2010 在程序集中添加资源文件

发布于 2024-10-12 12:39:52 字数 838 浏览 1 评论 0原文

我想在我的应用程序中拥有特定于文化的资源。我所做的是创建一个 Resource.txt 并使用 resgen.exe 将其编译为 Resource.resources。

但是,如果我使用以下方式访问我的资源:

System.Resources.ResourceManager rm = new System.Resources.ResourceManager("ResourceManager.Resources",
                             Assembly.GetExecutingAssembly());

并且如果我调用 Console.WriteLine(rm.GetString("test")); 它将引发错误

找不到任何资源 适合特定文化 或中立文化。确保 “资源管理器.资源.资源” 已正确嵌入或链接到 编译时的程序集“ResourceManager” 时间,或者说所有的卫星 所需的组件是可加载的并且 已完全签署。

我的资源文件是Resources.txt,其中包含“test=testing”文本,并将被编译为Resources.resources。

问题:

  1. 如何使用 IDE(Visual Studio 2010) 将已编译的资源链接到程序集?而不是在命令行上使用 csc 或 AL。

  2. 还有其他推荐的方法可以实现这一点吗?我已经在 Visual Studio 中添加了 .resx 文件及其工作,但是它对我不利,我更喜欢设置 key=value 类型的 txt 文件。

I wanted to have culture specific resources in my application. What i did is i created a Resource.txt and compile this to Resource.resources using resgen.exe.

However, if i access my resource using:

System.Resources.ResourceManager rm = new System.Resources.ResourceManager("ResourceManager.Resources",
                             Assembly.GetExecutingAssembly());

and if i will call Console.WriteLine(rm.GetString("test")); it will throw an error

Could not find any resources
appropriate for the specified culture
or the neutral culture. Make sure
"ResourceManager.Resources.resources"
was correctly embedded or linked into
assembly "ResourceManager" at compile
time, or that all the satellite
assemblies required are loadable and
fully signed.

My resource file is Resources.txt with text inside "test=testing" and will be compiled into Resources.resources.

Question:

  1. How can i link the compiled resources to the assembly using the IDE(Visual Studio 2010)?, not using the csc, or AL on command line.

  2. Is there any other recommended way how to accomplish this? I have added .resx files in visual studio and its working, however its not favorable for me, i favored the txt file with key=value type set up.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两仪 2024-10-19 12:39:52

尝试使用


System.Resources.ResourceManager rm = new System.Resources.ResourceManager("Resources",
                             Assembly.GetExecutingAssembly());

代替。

Try to use


System.Resources.ResourceManager rm = new System.Resources.ResourceManager("Resources",
                             Assembly.GetExecutingAssembly());

instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文