/linkresource (C# コンパイラ オプション)
.NET Framework リソースへのリンクを出力ファイルに作成します。 リソース ファイルは出力ファイルには追加されません。 これは、リソース ファイルを出力ファイルに埋め込む /resource オプションとは異なります。
/linkresource:filename[,identifier[,accessibility-modifier]]
Arguments
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 名前空間のメンバーを使用してアクセスできます。 詳細については、「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