Show/Hide Toolbars

XSharp

 

使用 -reference 选项,编译器会将指定文件中的公共类型信息导入当前项目,从而使您可以引用指定程序集中的元数据。

语法

-reference:[alias=]filename  
-reference:filename  

参数

filename包含程序集清单的文件名。若要导入多个文件,请为每个文件包含一个单独的 -reference 选项。
alias一个有效的 X# 标识符,代表一个根命名空间,该命名空间将包含程序集中的所有命名空间。

备注

要从多个文件导入,请为每个文件添加一个 -reference 选项。

 

导入的文件必须包含清单;输出文件必须是用 -target:module 以外的 -target 选项编译的。

 

-r 是 -reference 的简写。

 

使用 -addmodule 可从不包含程序集清单的输出文件中导入元数据。

 

如果你引用了一个程序集(程序集 A),而该程序集又引用了另一个程序集(程序集 B),那么在下列情况下,你需要引用程序集 B:

 

您从程序集 A 使用的类型继承自程序集 B 的类型或实现了程序集 B 的接口。

您调用的字段、属性、事件或方法具有来自程序集 B 的返回类型或参数类型。

 

使用 -lib 可指定一个或多个程序集引用所在的目录。-lib 主题还讨论了编译器搜索程序集的目录。

 

为了让编译器识别程序集(而非模块)中的类型,需要强制编译器解析该类型,这可以通过定义该类型的实例来实现。编译器还有其他方法来解析程序集中的类型名:例如,如果从程序集中的类型继承,编译器就能识别该类型名。

 

有时需要在一个程序集中引用同一组件的两个不同版本。为此,在每个文件的 -reference 开关中使用别名子选项来区分两个文件。该别名将用作组件名称的限定符,并解析为其中一个文件中的组件。

 

默认使用 xsc 响应 (.rsp) 文件,该文件引用常用的 .NET Framework 程序集。如果不想让编译器使用 xsc.rsp,请使用 -noconfig。

 

注意

在 Visual Studio 中,使用 "添加引用 "对话框。

示例

 

本例演示了如何使用外部别名功能。

 

你编译源文件,并从之前编译过的 grid.dll 和 grid20.dll 中导入元数据。这两个 DLL 包含同一组件的不同版本,你使用两个 -reference with alias 选项来编译源文件。选项如下

 

-reference:GridV1=grid.dll 和 -reference:GridV2=grid20.dll

 

这将设置外部别名 "GridV1 "和 "GridV2",并通过外部语句在程序中使用:

extern alias GridV1;  
extern alias GridV2;  
-/ Using statements go here.  

 

完成上述操作后,就可以像下面这样,在 grid.dll 中引用 grid 控件,方法是在控件名称前加上 GridV1:

GridV1::Grid  

 

此外,在引用 grid20.dll 中的 grid 控件时,可以在控件名称前加上 GridV2 这样的前缀:

GridV2::Grid