Nuget如何指定包位置?

Posted

技术标签:

【中文标题】Nuget如何指定包位置?【英文标题】:Nuget how can i specify packages location? 【发布时间】:2012-04-09 09:17:46 【问题描述】:

我有简单的文件夹结构:

project1
|_ nuget.config http://tinyurl.com/84ynb9z
|_ packages.config http://tinyurl.com/72zpy3z
project2
|_ nuget.config http://tinyurl.com/84ynb9z
|_ packages.config http://tinyurl.com/72zpy3z
packages
|_ FluentNHibernate.1.2.0.712
|_ FluentValidation.3.2.0.0

我需要从 packages.config 文件中恢复包(非常简单)

我在 nuget 1.6 中使用了可以在构建时恢复包的新功能,但我有两个问题:

    软件包始终“安装”在根文件夹中。我试图用很多变体多次更改 NuGet.targets 文件,但它总是安装在根目录中:(

    它显示已安装包 (http://tinyurl.com/7f2ow6k) 但参考中没有更新

顺便说一句:

我正在使用 nuget 1.6

我已经读过http://goo.gl/zZabG 和http://goo.gl/mJL7N 但什么也没读

【问题讨论】:

Is it possible to change the location of packages for NuGet?的可能重复 【参考方案1】:

当使用与默认位置不同的文件夹安装包时,这是 NuGet 的一个已知问题:

http://nuget.codeplex.com/workitem/1990

目前已指定在 NuGet 1.9 中修复。

【讨论】:

【参考方案2】:

我以这种方式更新了我的 Nuget.targets 文件,下一次构建将我的包安装在“libs”目录中

<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "libs"))</PackagesDir>

但是,引用没有更新。

第一次安装时会修复参考。然后你必须重新安装你的包(卸载然后重新安装),它将使用 nuget.config 文件。

然后,对于进一步的构建,将使用 NuGet.targets。

不是很直观,但对我有用,希望对你有帮助。

【讨论】:

以上是关于Nuget如何指定包位置?的主要内容,如果未能解决你的问题,请参考以下文章

修改NuGet包默认存放位置

ASP.NET Core 中的 NuGet 包位置在哪里?

更改NuGet包位置文件夹

NuGet 包还原 + NuGet 源设置

如何在本地安装 NuGet 包 .nupkg 文件?

获取NuGet包的位置