Skip to content
This repository was archived by the owner on Mar 6, 2025. It is now read-only.

Latest commit

 

History

History
62 lines (51 loc) · 4.1 KB

File metadata and controls

62 lines (51 loc) · 4.1 KB
title NuGet 包 .config 文件引用
description 在某些项目类型中,packages.config 维护项目中使用的 NuGet 包的列表。
author karann-msft
ms.author karann
ms.date 05/21/2018
ms.topic reference
ms.openlocfilehash 3665989d35d7362b30a106cf6b4ed0210619efee
ms.sourcegitcommit c81561e93a7be467c1983d639158d4e3dc25b93a
ms.translationtype MT
ms.contentlocale zh-CN
ms.lasthandoff 03/02/2020
ms.locfileid 78230559

packages.config 引用

某些项目类型中使用 packages.config 文件维护项目引用的包的列表。 这允许 NuGet 在项目要传输到其他计算机(如生成服务器)上时轻松还原项目的依赖项,而无需所有这些包。

如果使用,packages.config 通常位于项目根目录中。 它在第一个 NuGet 操作运行时自动创建,但也可以在运行任何命令(如 nuget restore)之前手动创建。

使用PackageReference的项目不使用 packages.config

架构

架构十分简单:以下标准 XML 标头是一个 <packages> 节点,包含一个或多个 <package> 元素,每个元素用于一个引用。 每个 <package> 元素可具有以下属性:

Attribute 必选 说明
id 包的标识符,如 Newtonsoft.json 或 Microsoft.AspNet.Mvc。
版本 要安装的包的确切版本,如 3.1.1 或 4.2.5.11-beta。 版本字符串必须至少具有三个数字,可以选择性添加第四个数字作为预发布后缀。 不允许使用范围。
targetFramework 安装包时应用的目标框架名字对象 (TFM)。 安装包时,此内容最初设置为项目目标。 因此,不同的 <package> 元素可具有不同的 TFM。 例如,如果创建面向 .NET 4.5.2 的项目,此时安装的包将使用 net452 的 TFM。 如果稍后将项目重定向到 .NET 4.6 并添加更多包,这些包将使用 net46 的 TFM。 项目目标和 targetFramework 属性之间的不匹配会生成警告,在此情况下,可以重新安装受影响的包。
allowedVersions 在包更新期间允许对此包应用的一系列版本(请参阅约束升级版本)。 这不影响安装或还原操作期间安装的包。 有关语法的信息,请参阅包版本控制。 PackageManager UI 还禁用允许范围之外的所有版本。
developmentDependency 如果使用项目本身创建 NuGet 包,针对依赖项将其设置为 true,可防止在创建使用包时添加该包。 默认为 false

示例

以下 packages.config 指的是两个依赖项:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="jQuery" version="3.1.1" targetFramework="net46" />
  <package id="NLog" version="4.3.10" targetFramework="net46" />
</packages>

以下 packages.config 指的是九个包,但由于 Microsoft.Net.Compilers 属性,生成使用包时不会包括 developmentDependency。 对 Newtonsoft.Json 的引用还将更新限制为仅 8.x 和 9.x 版本。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net46" />
  <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net46" developmentDependency="true" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
  <package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net46" />
  <package id="Newtonsoft.Json" version="8.0.3" allowedVersions="[8,10)" targetFramework="net46" />
  <package id="NuGet.Core" version="2.11.1" targetFramework="net46" />
  <package id="NuGet.Server" version="2.11.2" targetFramework="net46" />
  <package id="RouteMagic" version="1.3" targetFramework="net46" />
  <package id="WebActivatorEx" version="2.1.0" targetFramework="net46" />
</packages>