我正在嘗試開發具有多語言文件的示例應用程序。
我使用:Windows 7 64位和Visual Studio 2012 Express。
我在網上閱讀了一些教程,並創建了一個示例應用程序。多語言WinForms應用程序不能與.NET 2.0一起工作
在我的Debug目錄我創建的文件夾的語言文件:「恩」和「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文件嵌入附屬程序做我的應用程序 RESGEN lang.txt Al.exe工具/噸:LIB /embed:lang.resources /文化: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框架工作正常,但是當我改變目標框架在項目屬性.NET 2.0,我總是得到這個異常:
System.Resources.MissingManifestResourceException
我的應用程序必須在Windows XP上工作,因此它必須適用於早期的.NET Framework版本。
有人能告訴我我必須改變什麼才能在.NET Framework 2.0上運行我的應用程序?
謝謝你的線索。在這個目錄中我找不到工具(al.exe,resgen.exe)。我在resgen.exe中找到switch/r,我可以鏈接到.NET 2.0。但我如何在al.exe中定位.NET Framework? – pejoter
/r開關不會影響輸出格式,只能指定應引用(使用)的程序集。您應該安裝.NET 2.0,x86版本請參閱此處:https://www.microsoft.com/en-us/download/details.aspx?id=19988 –
再次感謝您。安裝.NET 2.0 SDK(用於resgen.exe)並更改我的bat文件以使用.net 2.0工具 - 它工作正常! – pejoter