【发布时间】:2017-07-04 08:18:37
【问题描述】:
我有一个使用自定义 nuget 包源的解决方案。现在我在位于我的解决方案文件附近的Nuget.config 文件中指定它们(以便从源代码管理中签出):
|- MySoulution.sln
|- MyProjFolder
|- .nuget
|- Nuget.exe
|- Nuget.config
|- Nuget.targets
这在从 VisualStudio 构建解决方案时效果很好。它设法读取了这个nuget.config 文件并成功恢复了所有包。
现在我将我的解决方案配置为从 TeamCity 构建。所以我添加了项目配置和构建步骤来构建它。但默认情况下,TeamCity 不会恢复 nuget 包。因此,我添加了一个单独的Nuget installer 构建步骤,为我的解决方案运行 nuget(特定版本)恢复。但问题是它似乎没有在解决方案文件旁边的.nuget 文件夹中看到来自Nuget.config 文件的自定义nuget 包源。
我看到了两种可能的方法来克服这个问题:
- 在
Nuget installer构建步骤中配置我的自定义包源。 - 在构建机器的 AppData 文件夹中的
Nuget.config中配置我的自定义包源。
我不喜欢这两种方法,因为它们没有为我提供从 TeamCity 和 VisualStudio 构建的单一配置。
总而言之,问题是:如何配置我的自定义包源,以便它们在 TeamCity 和 VisualStudio 中都可见,而无需我在不同的地方多次配置它们?
【问题讨论】:
-
在解决方案的 .nuget 文件夹中的 nuget.config 中配置包源。您必须指定 nuget 使用解决方案文件夹中的 nuget.config,默认情况下使用 appData 中的一个
-
docs.microsoft.com/en-us/nuget/tools/… 使用“ConfigFile”选项
-
您使用的是什么版本的 Visual Studio 和 NuGet?如果你使用的是 NuGet 2.7 或更高版本,并且有一个仍为 MSBuild 集成还原配置的解决方案,则解决方案的 .nuget 文件夹中可能有旧版本的 nuget.exe。这将导致构建失败,并显示您未同意恢复包的错误。建议使用 MSBuild 集成还原迁移任何项目,以使用 NuGet 2.7 及更高版本的自动还原功能。 docs.microsoft.com/en-us/nuget/consume-packages/…
-
@Leo-MSFT VS15 和 nuget 4.1.0。迁移到“MSBuild-integrated restore”意味着根本没有
.nuget文件夹,对吧?如何指定自定义 nuget 源? -
@D.J.嗯,看起来是一个很有前途的解决方案。会试一试
标签: c# visual-studio nuget nuget-package nuget-package-restore