gpt4 book ai didi

c# - 将本地化资源 .DLL 嵌入到 C# 中的可执行文件中?

转载 作者:行者123 更新时间:2023-12-04 02:15:57 25 4
gpt4 key购买 nike

我想让我的程序多语言。我已经通过 Form 的 Localizable 和 Language 属性成功地使程序多语言。它制作了一些 .resx 文件。然后我从 .resx 文件中删除了不需要的文件,例如图像(它们在所有语言中都相同)等。

问题是,例如,它还生成一个名为“en”的文件夹,在该文件夹中,另一个生成的文件名为“ProjectName.resources.dll”。

无论如何要将此资源文件嵌入到 .exe 中?将其添加到资源并将构建操作设置为“嵌入式资源”也不起作用。

谢谢。

最佳答案

在 .NET Framework 4 中,您可以将资源库嵌入到可执行文件中。

http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx

只需创建相同的结构(使用本地化文件夹 'lib/en', 'lib/de' )并嵌入它们。

private static Assembly MyResolveEventHandler(object sender, ResolveEventArgs args) {
AssemblyName MissingAssembly = new AssemblyName(args.Name);
CultureInfo ci = MissingAssembly.CultureInfo;

...
resourceName = "MyApp.lib." + ci.Name.Replace("-","_") + "." + MissingAssembly.Name + ".dll";
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)
...
}

关于c# - 将本地化资源 .DLL 嵌入到 C# 中的可执行文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7488921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com