c#应用程序:构建安装程序后丢失本地化dll
本文关键字:本地化 dll 程序 应用程序 构建 安装 | 更新日期: 2023-09-27 18:05:10
我正在研究这个表单应用程序,我在c#项目中使用本地化,其中不同的文本条目存储在资源文件(globalllanguages . html)中。和globalllanguages .fr.resx)。这些设置为嵌入式。
在VS 2008的调试/发布中运行应用程序时,一切都很好,当我从VS 2008以外的输出文件夹启动exe时,它也能工作。但是当我构建visual studio安装程序项目以获得我的安装程序并将其安装在我的机器上时,本地化不起作用。即使在安装文件夹中有一个.dll文件包含. first .resx值。
安装程序项目被设置为包含主项目的本地化输出。将安装的应用程序的当前语言环境输出到日志文件中确实会给出正确的值,但文本以默认语言显示。
我们确实使用IlMerge来合并exe中的几个.dll文件,但由于可以找到资源的.dll,我想这应该不是问题。我什么都试过了,就是不知道……
希望你们能帮忙。
谢谢
检查一下:(显然你需要修改类名/命名空间)
Type t = typeof(SomeClassInLanguageAssembly);
Assembly languageAssembly = t.Assembly;
Console.WriteLine("Current UI culture: "+Thread.CurrentThread.CurrentUICulture);
Console.WriteLine("Resources in assembly:");
languageAssembly.GetManifestResourceNames().ForEach(Console.WriteLine);
ResourceManager r = new ResourceManager("Language.Assembly.Namespace.ResourceName", languageAssembly);
Console.WriteLine("'YES' -> " + r.GetString("YES"));
如果我运行它,它输出如下:
当前用户界面文化:fr
程序集中的资源:
Company.Application.Language.Resources.resources
'YES' -> Oui