例如,如果项目以 32 位计算机上的 .NET Framework 4 为目标,则“扩展”将枚举在 \Microsoft.NETFramework\v4.0\AssemblyFoldersEx、\Microsoft.NETFramework\v3.5\AssemblyFoldersEx、\Microsoft.NETFramework\v3.0\AssemblyFoldersEx 和 \Microsoft.NETFramework\v2.0\AssemblyFoldersEx 下注册的程序集。
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"
<VersionMinimum> 是所应用的最低框架版本。 如果 <VersionMinimum> 为 v3.0,则 AssemblyFoldersEx 中指定的文件夹应用于以 3.0 版本及更高版本的 .NET Framework 为目标的项目。
<AssemblyLocation> 是要在“添加引用”对话框中显示的程序集目录,例如 C:\MyAssemblies。
通过在
HKEY_LOCAL_MACHINE
节点下创建注册表项,所有用户都可以在“添加引用”对话框中的指定位置看到这些程序集。 在
HKEY_CURRENT_USER
节点下创建注册表项只会影响当前用户的设置。
再次打开“添加引用”对话框。 程序集应出现在“.NET”选项卡中。如果未显示,请确保这些程序集位于指定的 AssemblyLocation 目录中,然后重启 Visual Studio 并重试。
“项目”选项卡
在“解决方案”子选项卡中,“项目”选项卡列出当前解决方案中的所有兼容项目。
一个项目可以引用面向其他框架版本的另一个项目。 例如,可以创建一个以 .NET 8.0 为目标、但引用针对 .NET 6.0 生成的程序集的项目。 但是,.NET 6.0 项目不能引用 .NET Framework 8.0 项目。 有关详细信息,请参阅
框架定位概述
。
“共享项目”选项卡
在“引用管理器”对话框的“共享项目”选项卡上添加对共享项目的引用。 使用
共享项目
,可以编写由许多不同的应用程序项目引用的通用代码。
通用 Windows 选项卡
“通用 Windows”选项卡列出特定于运行 Windows 操作系统的平台的所有 SDK。
此选项卡具有两个子组:“核心”与“扩展” 。
“核心”子组
默认情况下,通用 Windows 应用项目具有对通用 Windows SDK 的引用。 因此,“引用管理器”中的“核心”子组不枚举通用 Windows SDK 的任何程序集 。
“扩展”子组
“扩展”列出用于扩展目标 Windows 平台的用户 SDK。
SDK 是文件集合,Visual Studio 将其视为单个组件。 在“扩展”选项卡中,应用于调用了“引用管理器”对话框的项目的 SDK 将作为单个项列出。 添加到项目时,所有 SDK 内容将由 Visual Studio 使用,这样,用户无需采取任何额外操作即可使用 IntelliSense、工具箱、设计器、对象浏览器、生成、部署、调试和打包中的 SDK 内容。
若要了解如何在“扩展”选项卡中显示 SDK,请参阅
创建软件开发工具包
。
如果项目引用的 SDK 依赖于另一 SDK,则只有在用户手动添加对另一 SDK 的引用后,Visual Studio 才会使用另一 SDK。 在“扩展”选项卡上选择 SDK 时,“引用管理器”对话框会在详细信息窗格中列出所有依赖项,从而帮助你找出 SDK 依赖项
。
如果项目类型不支持扩展,则此选项卡不会显示在“引用管理器”对话框中。
“COM”选项卡列出可供引用的所有 COM 组件。 如果要添加对包含内部清单的已注册 COM DLL 的引用,请先注销该 DLL。 否则,Visual Studio 会将程序集引用作为 ActiveX 控件而不是本机 DLL 添加。
如果项目类型不支持 COM,则此选项卡不会显示在“引用管理器”对话框中。
可以使用“浏览”按钮浏览查找文件系统中的组件。
一个项目可以引用面向其他框架版本的组件。 例如,可以创建一个面向 .NET Framework 4.7.2、但引用面向 .NET Framework 4 的组件的应用程序。 有关详细信息,请参阅
框架定位概述
。
避免在同一个解决方案中添加对另一个项目的输出的文件引用,因为这可能导致编译错误。 而应使用“引用管理器”对话框的“解决方案”选项卡来创建项目到项目的引用。 这样就可以更好地管理在项目中创建的类库,从而更易于进行团队开发。 有关详细信息,请参阅
有关无效引用的疑难解答
。
无法浏览到 SDK 并将其添加到项目。 只能浏览到文件(例如程序集或 .winmd)并将其添加到项目。
执行对 WinMD 的文件引用时,预期布局为 <FileName>.winmd、<FileName>.dll 和 <FileName>.pri 文件全部并排放置。 如果在以下情况下引用 WinMD,一组不完整的文件将复制到项目输出目录中,从而导致生成和运行时失败。