在输出文件中创建指向 .NET Framework 资源的链接。资源文件不会添加到输出文件中。这与 -resource 选项不同,后者会在输出文件中嵌入资源文件。
-linkresource:filename[,identifier[,accessibility-modifier]]
filename | 要从程序集链接到的 .NET Framework 资源文件。 |
identifier (optional) | 资源的逻辑名称;用于加载资源的名称。默认为文件名。 |
accessibility-modifier | (可选) 资源的可访问性:公共或私有。默认为公共。 |
默认情况下,使用 X# 编译器创建的链接资源在程序集中是公共资源。要将资源设为私有,请指定 private 作为可访问性修饰符。除 public 或 private 外,不允许使用其他修饰符。
除了 -target:module 之外,-linkresource 还需要一个 -target 选项。
如果 filename 是由 Resgen.exe 或在开发环境中创建的 .NET Framework 资源文件,则可以使用 System.Resources 名称空间中的成员访问该文件。更多信息,请参阅 System.Resources.ResourceManager。对于所有其他资源,请使用程序集类中的 GetManifestResource* 方法在运行时访问资源。
文件名中指定的文件可以是任何格式。例如,您可能希望将本地 DLL 作为程序集的一部分,以便将其安装到全局程序集缓存中,并从程序集中的托管代码中进行访问。下面第二个示例展示了如何做到这一点。你也可以在程序集链接器中做同样的事情。下面的第三个示例演示了如何做到这一点。更多信息,请参阅 Al.exe(程序集链接器)和使用程序集和全局程序集缓存。
.
-linkres 是 -linkresource 的简称。
该编译器选项在 Visual Studio 中不可用,也不能通过编程更改。
编译 in.prg,并链接到资源文件 rf.resource:
xsc -linkresource:rf.resource in.prg
将 A.prg 编译成 DLL,链接到本地 DLL N.dll,并将输出结果放入全局程序集缓存 (GAC)。在本例中,A.dll 和 N.dll 都将位于 GAC 中。
xsc -linkresource:N.dll -t:library A.prg
gacutil -i A.dll
此示例与上一示例的操作相同,但使用了汇编链接器选项。
xsc -t:module A.prg
al -out:A.dll A.netmodule -link:N.dll
gacutil -i A.dll