【发布时间】:2014-03-26 06:39:38
【问题描述】:
我创建了一个简单的控制台应用程序来显示“Hello World”字符串。后来我带了资源文件来支持不同的语言,放上“Hello World”的翻译版本。我尝试在中文操作系统中运行 console.exe,并希望看到“Hello World”以中文显示。不幸的是它显示的是英文。
经过分析,发现添加 .resx 文件会在项目中创建一个单独的文件夹,其中包含每种语言的 .resource dll(卫星程序集)。因此,如果我将 .exe 与其他文件夹一起放置并运行,则“Hello World”会以中文显示。如果我删除文件夹(.resource)然后只运行 .exe,那么它会再次以英文显示“Hello World”。
有没有办法创建一个所有资源文件映射在一起的 .exe。这样我就不需要在运行 .exe 之前将文件夹与 .exe 一起放置。
顺便说一句,我正在尝试使用 Strings.STRING_NAME 访问字符串,其中“Strings”是默认资源文件的名称。其他语言的字符串文件类型为Strings.fr.resx、Strings.de.resx。
请在这方面提供帮助。
提前致谢。
【问题讨论】:
-
这个好像有解决办法:stackoverflow.com/questions/1453755/…
-
我很好奇。这是要解决什么问题?将所有 tje 程序集编译成一个文件有什么好处?
-
您好 Gusdor,主要问题是在远程机器上部署了一个 .exe 来显示本地化消息。
-
尝试的一种解决方法是发布控制台应用程序,从而使用必要的翻译文件创建 setup.exe。运行 setup.exe 解决了这个问题。但是,我不确定这是否是正确的方法。请在这方面指导我。
标签: c# .net satellite-assembly