2011-09-13 10 views
10

C#クラスプロジェクト内には、AssemblyInfo.csというプロパティファイルがあります。このファイルには、AssemblyTitle,AssemblyDescriptionなどの一連のアセンブリ属性があり、コンパイルされたプロジェクトに関する特定の詳細を記述するために使用されます。これらのうちの1つはAssemblyCultureです。C#クラスのプロジェクトでは、AssemblyCultureは何のために使用されていますか?

私は他のものが使用されていることを理解していますが、AssemblyCultureとは何ですか?言語?通貨?両方のビット?

このプロパティが表示されている場合は、空白のままです。 documentationから

+1

[アセンブリ上の属性MSDN](http://msdn.microsoft。com/ja-us/library/4w8c1y2s.aspx) –

+0

@jlafayごめんなさい - 1つのプロパティを読み込み、別のものを入力してください...修正をお願いします – Peach

答えて

19

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

は要約する:この属性は、 サテライトアセンブリプロジェクトにローカライズされたリソースを追加するときに自動的に作成をマークするために、フレームワークによって内部的に使用されます。おそらく、この属性を手動で ""以外に設定する必要はありません。 documentationから

+0

ドキュメントを参考にしてくれてありがとう。これは私が探していたものです。 – Peach

+1

MSDNはあなたの友人です。まあ、それはほとんどの時間です。 – jlafay

0

引用:

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

1

あなたの質問をGoogleで検索したとき、私はからこのチュートリアルから簡単な答えを出しました。それは私が下に提供している小さな記述を持っており、それはあなたがローカリゼーションを指定することができるように見えますが、私はあなたのアセンブリのためにどれくらいの作業をするのか分かりません。

「AssemblyCultureAttributeクラスは、これは本体ではなく、その衛星ではないことをアセンブリの文化だけでなく、indicteを指定するために使用されAssemblyCulture属性を実装しています。

[assembly: AssemblyCulture("de")] // German 

+0

リンクが壊れています – KansaiRobot

+1

@KansaiRobot私に知らせてくれてありがとう!私は私の答えを編集しました。 – jlafay

関連する問題