安装 NuGet 包时如何更改 packages.config 位置

How to change the packages.config location when installing a NuGet package

关注Migrating MSBuild-Integrated solutions to use Automatic Package Restore之后。 . .所以在 Visual Studio 中,我从 multi-project 解决方案中的所有 .csproj 文件中删除了所有 NuGet 引用,并且我还删除了文件:

.nuget/NuGet.exe
.nuget/Nuget.目标

仅保留:

.nuget/NuGet.配置

然后在程序包管理器控制台中,尝试安装一个程序包:

PM> Get-Project myProject | Install-Package somePackage -Version 1.0

结果为 "successful installation,",但未将引用添加到 myProject

的引用节点

并且 packages.config 正在以下位置创建:

.nuget/packages.config

不在:

myProject/packages.config

如何更改安装位置,以便 NuGet 安装在 myProject 的根目录中?

注意使用:
程序包管理器控制台主机版本 2.8.50926.663
Visual Studio 2013 专业版

通过包管理器控制台安装包的语法是这样的:

语法:

Install-Package [-Id] <string> [-IgnoreDependencies] [-ProjectName <string>] [-Version <string>] [-Source <string>] [-IncludePrerelease] [-Force] [-FileConflictAction] [-DependencyVersion <dependencyVersion>] [-WhatIf]

要在特定项目中安装包,您必须使用以下命令:

PM> Install-Package somePackage -Project myProject

如果省略 -Project 参数,则会选择默认项目(从下拉列表中)。

感谢 Matt Ward,我找到了问题所在。我错误地创建和安装了解决方案级包。这是因为在使用 NuGet Package Explorer.

创建 nuget 包时,我没有将 dll 添加到 lib 文件夹

可以在此处找到更多信息:

Creating a solution-level package

解决方案级包是为包管理器控制台安装工具或附加命令的包,但不向解决方案中的任何项目添加引用、内容或构建自定义。例如,psake 包安装了 Powershell 脚本,您可以使用它来自动化构建过程。

如果一个包在其 lib、content 或 build 目录中不包含任何文件,则该包被视为解决方案级包。如果包有依赖项,它们的 lib、content 或 build 目录中也不能有文件。

安装解决方案级包时,它会在 .nuget 目录中的 packages.config 文件中进行跟踪,而不是在特定项目中的 packages.config 文件中进行跟踪。