Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (57 sloc) 3.91 KB
title f1_keywords helpviewer_keywords ms.assetid
-linkresource (C# Compiler Options)
/linkresource compiler option [C#]
linkres compiler option [C#]
/linkres compiler option [C#]
-linkres compiler option [C#]
-linkresource compiler option [C#]
linkresource compiler option [C#]

-linkresource (C# Compiler Options)

Creates a link to a .NET Framework resource in the output file. The resource file is not added to the output file. This differs from the -resource option which does embed a resource file in the output file.




The .NET Framework resource file to which you want to link from the assembly.

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 (optional)
The accessibility of the resource: public or private. The default is public.


By default, linked resources are public in the assembly when they are created with the C# compiler. To make the resources private, specify private as the accessibility modifier. No other modifier other than public or private is allowed.

-linkresource requires one of the -target options other than -target:module.

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 xref:System.Resources namespace. For more information, see xref:System.Resources.ResourceManager?displayProperty=nameWithType. For all other resources, use the GetManifestResource methods in the xref:System.Reflection.Assembly class to access the resource at run time.

The file specified in filename can be any format. 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. The second of the following examples shows how to do this. You can do the same thing in the Assembly Linker. The third of the following examples shows how to do this. For more information, see Al.exe (Assembly Linker) and Working with Assemblies and the Global Assembly Cache.

-linkres is the short form of -linkresource.

This compiler option is unavailable in Visual Studio and cannot be changed programmatically.


Compile in.cs and link to resource file rf.resource:

csc -linkresource:rf.resource in.cs  


Compile A.cs into a DLL, link to a native DLL N.dll, and put the output in the Global Assembly Cache (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  


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

You can’t perform that action at this time.