/linkresource (C# コンパイラ オプション)

.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

参照

処理手順

方法 : プロジェクト プロパティおよび構成設定を変更する

関連項目

Al.exe (アセンブリ リンカー)

その他の技術情報

C# コンパイラ オプション

アセンブリとグローバル アセンブリ キャッシュの使用