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

时间:2015-02-27 15:42:50

标签: visual-studio nuget nuget-package nuget-package-restore

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

.nuget / NuGet.exe
.nu​​get / Nuget.targets

并且只保留:

.nuget / NuGet.Config

然后在Package Manager控制台中,尝试安装软件包:

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

导致成功安装,"但是没有将参考添加到myProject的References节点

enter image description here

并且正在创建packages.config:

.nuget / packages.config

而不是:

myProject的/ packages.config

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

请注意:
软件包管理器控制台主机版本2.8.50926.663
Visual Studio 2013 Pro

2 个答案:

答案 0 :(得分:2)

感谢Matt Ward,我发现了这个问题。我错误地创建并安装了解决方案级别的包。这是因为我在使用NuGet Package Explorer创建nuget包时没有将dll添加到lib文件夹。

enter image description here

可在此处找到更多信息:

Creating a solution-level package

解决方案级别的包是为Package Manager控制台安装工具或其他命令的包,但不会向解决方案中的任何项目添加引用,内容或构建自定义。例如,psake包安装了可用于自动化构建过程的Powershell脚本。

如果包在其lib,content或build目录中不包含任何文件,则该包被视为解决方案级包。如果包具有依赖关系,则它们的lib,content或build目录中也不得包含文件 安装解决方案级别的软件包时,会在.nuget目录中的packages.config文件中跟踪它,而不是在特定项目的packages.config文件中跟踪。

答案 1 :(得分:0)

通过包管理器控制台安装包的语法如下:

<强>语法:

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

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

PM> Install-Package somePackage -Project myProject

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