3

C# で記述された DLL の言語プロパティを変更するにはどうすればよいですか?

Project Properties -> Assembly Information -> Neutral LanguageComboBoxに入って に設定しようとしましたEnglish (United States)

プロジェクト/ソリューションをビルド/再ビルドした後、DLL を右クリックして [詳細] タブに移動すると、[言語] プロパティに常に次のように表示されます。Language Neutral.

編集: 私が見つけた解決策は、外部 *.res ファイル (単に Visual Studio によって生成されたもの) を使用し、ダイアログで選択することですProject Propertie->Application Tab-> Resource File

4

2 に答える 2

5

このプロパティは、AssemblyInfo.cs ファイルの [AssemblyCulture] 属性を設定します。MSDN ライブラリの記事には、備考セクションに次の重要な注意事項があります。

この属性は、メイン アセンブリとサテライト アセンブリを区別するためにコンパイラによって使用されます。メイン アセンブリには、コードとニュートラル カルチャのリソースが含まれています。サテライト アセンブリには、[assembly:AssemblyCultureAttribute("de")] のように、特定のカルチャのリソースのみが含まれます。この属性をアセンブリに配置し、カルチャ名に空の文字列 ("") 以外のものを使用すると、このアセンブリは、実行可能コードを含むメイン アセンブリではなく、サテライト アセンブリのように見えます。従来のコード ライブラリにこの属性のラベルを付けると、他のコードが実行時にライブラリのエントリ ポイントを見つけることができないため、ライブラリが壊れます。

もう 1 つの重要な制限は、GAC がアセンブリ名、バージョン、アーキテクチャ、および公開キー トークンによってアセンブリを区別できるが、カルチャでは区別できないことです。サテライト アセンブリは常にローカルに格納する必要があります。

簡単に言うと、コードを含むプロジェクトではニュートラル以外を選択しないでください。サテライト アセンブリは、ほとんどの場合、プロジェクト内のリソースから自動生成され、適切な [AssemblyCulture] 属性を自動的に取得します。

于 2012-08-29T11:15:42.153 に答える