【发布时间】:2017-10-16 16:28:34
【问题描述】:
我正在尝试在 TFS2015 中设置自动构建。目标是在签入时自动构建和测试解决方案,如果一切顺利,则创建一个新的 Nuget 包并将其放置在本地存储库中。
这个过程适用于我的第一个解决方案,它是一个没有依赖关系的简单项目。然后,从该项目创建的 Nuget 包被第二个项目用作依赖项。
这在 Visual Studio 中构建时可以正常工作。包被正常下载和解压。但是,当我将第二个项目签入 TFS 时,自动构建无法正确处理此包。包从本地存储库中恢复,但未解压缩。这意味着构建失败,因为它找不到它需要的实际 DLL。
我也在项目中使用 EntityFramework,它工作正常。软件包已下载,但随后也被提取。
我已经尝试过question 中给出的解决方法,但 TFS 服务器没有 C:\Users.nuget\packages 文件夹。
我也尝试使用命令here 清除 Nuget 缓存,但同样没有帮助。
如果我手动提取自动构建下载的 Nuget 包,然后再次运行构建,它可以工作,这表明问题不在于包本身?
Nuget.exe 版本为 3.5。 .Net 版本是 4.5 标准。包在 packages.config 和项目引用中引用。 Nuget.exe 正在用于还原。
知道为什么没有提取本地包吗?
【问题讨论】:
-
你用的是什么项目?经典 .net、.net 核心/标准(>“SDK”-项目)。 packages.config 还是 ProjectReference?你是用nuget.exe来恢复的吗?
-
.Net 版本是 4.5 标准。包在 packages.config 和项目引用中引用。 Nuget.exe 正在用于还原。
-
当您删除解决方案本地包文件夹时,它是否可以在您的计算机上运行?我怀疑 packages.config 中缺少包引用,并且可能偶然在您的开发机器上工作。
-
我删除了解决方案包文件夹并重建,它在本地正确下载和提取。我在构建服务器上做了同样的事情,它在那里下载了包但没有提取它
标签: tfs nuget nuget-package-restore