gpt4 book ai didi

c# - 多语言 WinForms 应用程序不适用于 .NET 2.0

转载 作者:行者123 更新时间:2023-11-30 17:09:21 26 4
gpt4 key购买 nike

我正在尝试开发一个包含多语言文件的示例应用程序。
我使用:Windows 7 64 位和 Visual Studio 2012 Express。
我在网上阅读了一些教程,并创建了一个示例应用程序。

在我的调试目录中,我为语言文件创建了文件夹:“en”和“pl”
我在这些目录和主目录中创建了文本资源文件,所以我的文件结构是:

lang.txt
lang.resouces
multilang.resources.dll
multilang.exe
-en
--lang.en.txt
--lang.en.resources
--multilang.resources.dll
-pl
--lang.pl.txt
--lang.pl.resources
--multilang.resources.dll

我写了一个 .bat 文件来嵌入卫星程序集做我的应用程序 重新生成lang.txt al.exe/t:lib/embed:lang.resources/culture:pl-PL/out:multilang.resources.dll

resgen en/lang.en.txt
al.exe /t:lib /embed:en/lang.en.resources,multilang.en.resources /culture:en /out:en/multilang.resources.dll

resgen pl/lang.pl.txt
al.exe /t:lib /embed:pl/lang.pl.resources,multilang.pl.resources /culture:pl /out:pl/multilang.resources.dll

在我的应用程序中我使用 ResourceManager

_rm = new ResourceManager("multilang", Assembly.GetExecutingAssembly());

和获取文本的GetString方法

this._rm.GetString(stringFromRm);

当我在 .NET 4.5 Framework 中编译我的应用程序时,它工作正常,但是当我将项目属性中的目标框架更改为 .NET 2.0 时,我总是得到这个异常:

System.Resources.MissingManifestResourceException

我的应用程序必须在 Windows XP 上运行,因此它必须与早期的 .NET Framework 版本一起运行。

有人可以告诉我必须更改哪些内容才能在 .NET Framework 2.0 上运行我的应用程序吗?

最佳答案

为应在 .NET 框架上运行的应用程序运行 resgen.exeal.exe 时,必须确保生成的程序集可以被 .NET 读取2.0 运行时。程序集格式在 .NET 4 中得到了扩展,因此 2.0 运行时能够加载 4.0 程序集。

因此请确保您使用的是 C:\Windows\Microsoft.NET\Framework\v2.0.50727 中的这两个工具,而不是较新的框架版本中的工具。

关于c# - 多语言 WinForms 应用程序不适用于 .NET 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996664/

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