-linkresource (C# コンパイラ オプション)-linkresource (C# Compiler Options)

.NET Framework のリソースへのリンクを出力ファイルに作成します。Creates a link to a .NET Framework resource in the output file. リソース ファイルが出力ファイルに追加されることはありません。The resource file is not added to the output file. これに対し、-resource オプションはリソース ファイルを出力ファイルに埋め込みます。This differs from the -resource option which does embed a resource file in the output file.

構文Syntax

-linkresource:filename[,identifier[,accessibility-modifier]]  

引数Arguments

filename
アセンブリからリンクする .NET Framework のリソース ファイル。The .NET Framework resource file to which you want to link from the assembly.

identifier (省略可能)identifier (optional)
リソースの論理名。リソースを読み込むために使われる名前です。The logical name for the resource; the name that is used to load the resource. 既定値は、ファイルの名前です。The default is the name of the file.

accessibility-modifier (省略可能)accessibility-modifier (optional)
リソースのアクセシビリティ。パブリックまたはプライベートです。The accessibility of the resource: public or private. 既定値はパブリックです。The default is public.

解説Remarks

既定では、リンクされたリソースは、C# コンパイラで作成されるときにアセンブリ内でパブリックになります。By default, linked resources are public in the assembly when they are created with the C# compiler. リソースをプライベートにするには、アクセシビリティ修飾子として private を指定します。To make the resources private, specify private as the accessibility modifier. public または private 以外の他の修飾子は許可されません。No other modifier other than public or private is allowed.

-linkresource には、 -target:module 以外のいずれかの -target オプションが必要です。-linkresource requires one of the -target options other than -target:module.

filenameResgen.exe や開発環境などで作成された .NET Framework リソース ファイルである場合は、System.Resources 名前空間のメンバーを使ってそのファイルにアクセスできます。If filename is a .NET Framework resource file created, for example, by Resgen.exe or in the development environment, it can be accessed with members in the System.Resources namespace. 詳細については、System.Resources.ResourceManager を参照してください。For more information, see System.Resources.ResourceManager. それ以外のすべてのリソースに対しては、Assembly クラスの GetManifestResource メソッドを使用して、実行時にリソースにアクセスします。For all other resources, use the GetManifestResource methods in the Assembly class to access the resource at run time.

filename で指定するファイルはどのような形式でもかまいません。The file specified in filename can be any format. たとえば、ネイティブ DLL をアセンブリの一部にすることで、グローバル アセンブリ キャッシュにインストールして、アセンブリ内のマネージド コードからアクセスできるようにすることができます。For example, you may want to make a native DLL part of the assembly, so that it can be installed into the global assembly cache and accessed from managed code in the assembly. 以下の例の 2 番目で、その方法を示します。The second of the following examples shows how to do this. 同じことをアセンブリ リンカーで行うことができます。You can do the same thing in the Assembly Linker. 以下の例の 3 番目で、その方法を示します。The third of the following examples shows how to do this. 詳しくは、「Al.exe (アセンブリ リンカー)」および「アセンブリとグローバル アセンブリ キャッシュの使用」をご覧ください。For more information, see Al.exe (Assembly Linker) and Working with Assemblies and the Global Assembly Cache.

-linkres-linkresource の省略形式です。-linkres is the short form of -linkresource.

このコンパイラ オプションは Visual Studio では使用できず、プログラムで変更することはできません。This compiler option is unavailable in Visual Studio and cannot be changed programmatically.

Example

in.cs をコンパイルして、リソース ファイル rf.resource にリンクします。Compile in.cs and link to resource file rf.resource:

csc -linkresource:rf.resource in.cs  

Example

A.cs をコンパイルして DLL を作成し、ネイティブ DLL N.dll にリンクして、出力をグローバル アセンブリ キャッシュ (GAC) に配置します。Compile A.cs into a DLL, link to a native DLL N.dll, and put the output in the Global Assembly Cache (GAC). この例では、A.dll と N.dll の両方を GAC に置きます。In this example, both A.dll and N.dll will reside in the GAC.

csc -linkresource:N.dll -t:library A.cs  
gacutil -i A.dll  

Example

この例では、前の例と同じことを行いますが、アセンブリ リンカー オプションを使います。This example does the same thing as the previous one, but by using Assembly Linker options.

csc -t:module A.cs  
al -out:A.dll A.netmodule -link:N.dll   
gacutil -i A.dll  

関連項目See also