/linkresource (.NET Framework リソースへのリンク) (C# コンパイラ オプション)
更新 : 2007 年 11 月
.NET Framework リソースへのリンクを出力ファイルに作成します。リソース ファイルは出力ファイルには追加されません。これは、リソース ファイルを出力ファイルに埋め込む /resource オプションとは異なります。
/linkresource:filename[,identifier[,accessibility-modifier]]
引数
filename
アセンブリからのリンク先である .NET Framework リソース ファイル。identifier (省略可能)
リソースの論理名。リソースの読み込みに使用します。既定値はファイル名です。accessibility-modifier (省略可能)
リソースのアクセシビリティ (public または private)。既定値は public です。
解説
既定では、リンクされたリソースを C# コンパイラで作成すると、そのリソースはアセンブリ内で public になります。リソースを private にする場合は、private をアクセシビリティ修飾子として指定します。public と private 以外の修飾子は使用できません。
/linkresource では、/target:module 以外のいずれかの /target オプションが必要です。
filename が .NET Framework リソース ファイルである場合、たとえば Resgen.exe や開発環境で作成されたものである場合は、System.Resources 名前空間のメンバを使用してアクセスできます。詳細については、「System.Resources.ResourceManager」を参照してください。それ以外のすべてのリソースに対しては、Assembly クラスの GetManifestResource* メソッドを使用して、実行時にリソースにアクセスします。
filename に指定するファイルの形式は任意です。たとえば、ネイティブ DLL をアセンブリの一部として含め、そのネイティブ DLL をグローバル アセンブリ キャッシュにインストールして、アセンブリ内のマネージ コードからアクセスできるようにすることもできます。以下の 2 つ目の例では、この方法が示されています。これと同じことは、アセンブリ リンカで行うこともできます。以下の 3 つ目の例では、この方法が示されています。詳細については、「アセンブリ リンカ (Al.exe)」および「アセンブリとグローバル アセンブリ キャッシュの使用」を参照してください。
/linkres は /linkresource の省略形です。
このコンパイラ オプションは、Visual Studio で利用できず、プログラムで変更することもできません。
使用例
in.cs をコンパイルし、リソース ファイル rf.resource にリンクさせる例を次に示します。
csc /linkresource:rf.resource in.cs
A.cs をコンパイルして DLL を作成し、ネイティブの DLL N.dll にリンクして、出力をグローバル アセンブリ キャッシュ (GAC) に格納します。次の例では、A.dll および N.dll の両方が GAC に格納されます。
csc /linkresource:N.dll /t:library A.cs
gacutil -i A.dll
次の例では、前の例と同じことをアセンブリ リンカのオプションを使って実行します。
csc /t:module A.cs
al /out:A.dll A.netmodule /link:N.dll
gacutil -i A.dll