如何:使用引用管理器添加或移除引用

可以使用 引用管理器 对话框添加,并管理对您,Microsoft,或其他公司开发的组件。 如果您开发 Windows 应用商店 app,项目将自动引用任何 Windows 8 SDK 和 .NET framework。 如果开发其他项目类型,必须将这些手动引用添加到项目。

警告

使用 添加引用 对话框,可在其他可以添加引用项目。有关更多信息,请参见如何:使用“添加引用”对话框添加或移除引用

添加和移除引用

在项目中添加引用

  1. 在菜单栏上,依次选择 文件打开

  2. 定位到您的解决方案或项目。

  3. 解决方案资源管理器,请打开的快捷菜单引用"节点,然后选择 添加引用

  4. 引用管理器 对话框中,指定引用"添加",然后选择 确定 按钮。

若要移除引用,打开其快捷菜单,然后选择 移除

若要添加在 c. c++ 的引用项目

  1. 在菜单栏上,依次选择 文件打开

  2. 定位到您的解决方案或项目。

  3. 解决方案资源管理器,请打开项目节点的快捷菜单,然后选择 引用

  4. 属性页 对话框中,选择 添加新引用 按钮。

  5. 添加引用 对话框中,指定引用"添加",然后选择 确定 按钮。

若要移除引用,打开其快捷菜单,然后选择 移除

引用管理器 打开并列出可由组引用。 项目类型确定以下组显示:

  • 程序集,具有结构和扩展子组的。

  • 解决方案,与项目子组。

  • 窗口中,具有内核和扩展子组的。 使用 对象浏览器,就象 windows SDK 或扩展 SDKs 可以测试引用。

  • 浏览,其中最近子组。

程序集"选项

程序集 选项列表为引用可用的所有 .NET framework 程序集。 因为在 GAC 中的程序集为运行时环境,的一部分 程序集 选项没有列出从全局程序集缓存 (GAC) 的任何程序集。 如果部署或复制不论复制本地集,包含引用程序集在 GAC 中注册) 的应用程序,程序集将不会部署也不会复制与应用程序。 有关更多信息,请参见 项目引用

在手动添加对任何 EnvDTE 命名空间 (EnvDTE、EnvDTE80、、、EnvDTE90a 或 EnvDTE100),将引用的嵌入互操作类型属性设置为 false 在"属性"窗口。 将此属性设置为 true 可能导致编译问题由于无法嵌入的某些 EnvDTE 属性。

所有桌面项目包含一个隐式对 mscorlib。 Visual Basic 项目包含一个隐式对 Microsoft.VisualBasic。 在 Visual Studio 2012,所有项目都包含隐式对 System.Core,因此,即使它从列表中移除的引用。

如果项目类型不支持程序集,选项卡将不会出现在 引用管理器 对话框。

程序集"选项包含两个子选项:

  1. 结构列表构成的目标框架的所有程序集。

    • 播发的程序集在完全框架,并枚举 framework 列表中,如果项目面向的目标框架的配置文件。 播发的程序集是灰色的区分它们从存在该项目的目标框架配置文件程序集。 例如,因此,如果项目面向 .NET framework 4 名客户端,结构列表显示从 .NET framework 4. 的播发的程序集。 当用户向一个播发的程序集时,用户得到通知,在 引用管理器 对话框关闭后,项目将重定目标为 .NET framework 4,并且公布的程序集将添加。

    • Windows 应用商店 apps 的默认项目包含对所有在面向的 适用于 Windows 应用商店应用的 .NET 的程序集在创建项目。 在托管项目,在下的只读节点的引用在 解决方案资源管理器 的文件夹指示对整个结构。 因此,结构选项不会枚举中的任何一个从 framework 中的程序集并且不会显示以下信息:“所有 framework 程序集已引用。 请使用对象浏览器"测试引用结构中”对桌面项目,结构"从枚举的目标框架的程序集,因此,用户必须添加对应用程序要求。

  2. 扩展列表元素和控件外部供应商开发扩展的目标框架的所有程序集。 基于用户应用程序的目的,则可能需要这些程序集。

    • 扩展通过枚举在以下位置注册的程序集填充:

      32-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      64-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      And older versions of the [Target Framework Identifier]
      

      例如,因此,如果项目面向 32 位计算机的 .NET framework 4,扩展将枚举是注册在 \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\,\Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\,\Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\,并 \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\的程序集。

COM 选项

COM 选项列表为引用可用的所有 COM 组件。 如果要添加对包含内部的注册 COM DLL 清单,首先注销 DLL。 否则,Visual Studio 会将程序集引用作为 Activex 控件而不是本机 DLL。

如果项目类型不支持 COM,选项卡将不会出现在 引用管理器 对话框。

解决方案选项

解决方案选项列出当前解决方案中的所有兼容项目中,项目子选项卡。

项目可以引用面向 .NET framework 的其他版本的另一个项目。 例如,可以创建面向 .NET Framework 4,但引用程序集的 .NET framework 2. 生成的项目。 不过,.NET framework 2 项目不能引用 .NET Framework 4 项目。 有关更多信息,请参见面向特定的 .NET Framework 版本或配置文件

面向 .NET Framework 4 的项目和面向 .NET Framework 4 Client Profile的项目不兼容。

在 Visual Studio 2012,该文件引用而不是项目引用后,如果一个项目面向 .NET framework 4,另一个项目针对早期版本。

面向 适用于 Windows 应用商店应用的 .NET 项不能添加对的项目引用面向 .NET framework 反之亦然的项目。

窗口"选项卡

窗口"选项卡中列出了特定于平台 windows 操作系统上运行的所有 SDKs。

可以生成在 Visual Studio 的一 WinMD 文件有两种方法:

  • Windows 应用商店 app 托管项目: Windows 应用商店 app 项目通过设置项目属性可以输出 WinMD 二进制访问|输出类型 = WinMD 文件。 WinMD 文件名必须是在其中存在任何命名空间的扩展命名空间。 例如,因此,如果项目包含命名空间 A.B 和 A.B.C,可能的名称其过后 WinMD 是 A.winmd 和 A.B.winmd。 如果用户输入项目属性|程序集名称或项目属性|是的命名空间值从提供设置在项目的命名空间或存在项目中未扩展命名空间,生成将生成警告:“A.winmd”不是此程序集的活动 .winmd 文件名。 在 windows 元数据文件中的所有类型必须存在于文件名的子命名空间。 不存在该文件名的子命名空间的类型不能位于运行时。 此程序集中,最小的通用命名空间是“CSWSClassLibrary1”。 使用 Windows 8 SDKs,桌面 Visual Basic 或 Visual C# 项目仅使用生成,即第一方的 WinMDs 的 WinMDs,并且无法生成 WinMDs。

  • Windows 应用商店 app 本机项目:本机 WinMD 文件仅包含元数据。 其实现存在于单独的 DLL 文件。 一个可通过选择窗口运行时组件的项模板。新建项目 对话框或从空白项目开始和修改项目属性生成 WinMD 文件生成本机二进制文件。 如果项目包含为提供命名空间,生成错误将告诉用户将它们合并的命名空间或运行 MSMerge 工具。

窗口"选项卡包含两个子选项卡。

Hh708954.collapse_all(zh-cn,VS.110).gif核心子组

核心选项列出所有 WinMDs (对于 WinRT 元素) 在窗口的目标版本的 SDK。

默认情况下Windows 应用商店 app 项目包含对所有在 Windows 8 SDK 的 WinMDs 在创建项目。 在托管项目,在下的只读节点的引用在 解决方案资源管理器 的文件夹指示对整个 Windows 8 SDK。 因此,在引用管理器的核心选项不会枚举中的任何一个从 Windows 8 SDK 的程序集和不显示消息:“windows SDK 已引用。 请使用对象浏览器"测试引用在 windows SDK”。

默认情况下在桌面项目核心选项不会出现。 可以将 windows 运行时通过打开项目节点的快捷菜单上,选择 卸载项目,添加下面的代码段和重新打开该项目 (项目节点选择 重新加载项目)。 当您调用 引用管理器 对话框时,核心选项卡。

  <PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
  </PropertyGroup>

确保检查此选项卡上的窗口的框。 您应随后可以使用 WinRT 元素。

Hh708954.collapse_all(zh-cn,VS.110).gif扩展子组

扩展针对的 windows 平台的扩展列出用户 SDKs。 此选项仅 Windows 应用商店 app 项目出现在中。 因为它们可使用仅第一方的 .winmd 文件,桌面项将不会显示此选项。

SDK 是 Visual Studio 将一个组件文件的集合。 在扩展选项,适用于项目 引用管理器 对话框调用的 SDKs 列表作为一个条目。 当添加到项目中,所有 SDK 内容由 Visual Studio 使用此类用户无需执行任何其他操作利用 IntelliSense、工具框、设计器、对象浏览器、生成、部署,调试和打包 SDK 内容。 有关如何显示您的扩展中的 SDK 的信息"选项卡上,请参见 如何:创建软件开发套件

备注

如果依赖于另一个 SDK 的项目引用 SDK,Visual Studio 不会使用第二个 SDK,除非用户手动添加对第二 SDK。当用户在 扩展 选项中的一个 SDK,引用管理器 对话框可帮助用户通过列表 SDK 的名称来标识 SDK 依赖项和版本,而且所有 SDK 依赖项的名称在细节窗格中。如果用户不通知依赖项和仅不将该 SDK,MSBuild 将提示用户添加依赖项。

如果项目类型不支持 扩展,不会显示选项卡 引用管理器 对话框。

“浏览”按钮

可以使用 浏览 按钮以在文件系统中的一个组件浏览。

项目可以引用面向 .NET framework 的其他版本的元素。 例如,可以创建面向 .NET framework 4 名客户端配置文件,该文件引用元素面向 .NET framework 2. 的应用程序。 有关更多信息,请参见面向特定的 .NET Framework 版本或配置文件

因为此策略可能导致编译错误,因此应避免文件添加对另一个项目输出在同一解决方案中。 相反,应使用 引用管理器 对话框的 解决方案 选项创建项目到项目的引用。 此策略使易于进行团队开发。可以在项目中创建选件类库的更好地管理。 有关更多信息,请参见有关无效的引用的疑难解答

不能浏览到 SDK 并将其添加到项目中。 只能浏览到文件 (例如,程序集或 .winmd) 并将它添加到项目中。

当执行文件时引用 WinMD,所需的格式为 [文件名].winmd,[文件名].dll 和 [文件名].pri 文件都沿着在其中放置。 如果引用在下列方案中的 WinMD,未完成安装文件将复制到项目输出目录,因此,因此,生成和运行时失败将发生。

  • 本机组件:本机项目将创建每个的一 WinMD 提供包括实现的设置命名空间和一个 DLL。 WinMDs 将具有不同的名称。 当引用此本机组件文件时,MSBuild 将不视为不与命名 WinMDs 创建一个元素。 因此,只有同名 [文件名].dll 和 [文件名].winmd 要复制,因此,运行时将发生错误。 若要解决此问题,请创建扩展 SDK。 有关更多信息,请参见如何:创建软件开发套件

  • 使用的控件:至少,XAML 控件包括 [文件名].winmd,[文件名].dll,[文件名].pri,[xamlname].xaml 和 [imagename].jpg。 在项目生成,与该文件引用将不会复制到项目的输出仅内容和资源文件的 [文件名].winmd,[文件名].dll 和 [文件名].pri 的文件夹。 编译错误会记录通知用户资源 [xamlname].xaml 和 [imagename].jpg 丢失。 若要成功,用户必须手动复制这些资源文件添加到生成和调试/运行时的项目输出目录。 若要解决此问题,请按照中的步骤创建一个扩展 SDK 在 如何:创建软件开发套件 或编辑项目文件添加以下特性:

    <PropertyGroup>
    <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    

    备注

    如果添加属性,生成可能运行更慢。

Recent

程序集,COM,窗口,并浏览每个支持一个新选项,枚举元素列表最近添加到项目中。

搜索

引用管理器 对话框中搜索条运行在焦点的选项。 例如,在中,如果用户键入“系统”在搜索条,如果解决方案选项焦点时,搜索不会返回任何结果,除非该解决方案包含“系统”的项目名称。

请参见

任务

如何:使用“添加引用”对话框添加或移除引用

概念

管理项目引用