3

多言語ファイルを使用してサンプル アプリケーションを開発しようとしています。
私が使用しているのは、Windows 7 64 ビットと Visual Studio 2012 Express です。
Web でいくつかのチュートリアルを読み、サンプル アプリを作成しました。

Debug ディレクトリに言語ファイル用のフォルダを作成しました: '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 ファイルを作成しました。アプリを resgen 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 でアプリを実行するには何を変更する必要があるか教えてもらえますか?

4

1 に答える 1

2

resgen.exe.NET Framework で実行する必要があるアプリケーションを実行al.exeする場合、生成されたアセンブリが .NET 2.0 ランタイムで読み取れることを確認する必要があります。アセンブリ形式は .NET 4 で拡張されたため、2.0 ランタイムは 4.0 アセンブリをロードできるようになります。

C:\Windows\Microsoft.NET\Framework\v2.0.50727そのため、新しいフレームワーク バージョンのツールとそうでないツールの両方を使用していることを確認してください。

于 2012-10-21T09:44:10.253 に答える