【发布时间】:2017-10-15 18:43:29
【问题描述】:
假设我的解决方案有 2 个包依赖项:
3rdParty.CompanyA.ProductA 版本 4.0.1 和 3rdParty.CompanyB.ProductB 版本 2.0.1
两个包都引用了其他包依赖“C”。 第一个依赖项设置为“高于 1.2 - (>1.2)”,另一个设置为“高于 1.8 - (>1.8)”。
当我在本地编译时,解决方案一切正常,bin 目录中的“C”版本是最新的“1.8”,正如预期的那样...... 但是当我在 TFS 中编译这个解决方案并引用相同的 .Nuget\NuGet.config 文件时,我得到的是 old 1.2v "C" bin 目录中的版本,因此我的产品坏了。 是否有特殊的配置来通知 TFS 恢复采用将匹配所有依赖项的版本?
更新
我想我知道我的问题来自哪里,但我完全理解它。 在 TFS 中,我正在为 8 个项目编译和恢复包。 编译结束后,我使用“测试程序集”步骤运行 UnitTest。 我发现在默认设置下,我的 unittest 会因为它引用旧的 DLL 而被破坏。但是当我打开 “并行运行”时,它按预期工作。
【问题讨论】:
-
当您删除本地
packages文件夹并让程序包恢复再次运行时会发生什么? -
1.2 和 1.8 文件夹都在包文件夹中创建。但只有较新的 1.8 会按预期复制到 bin 中
-
如果你先禁用你的测试相关任务会有什么结果?只需离开构建任务。你能得到正确的版本吗?我的意思是尝试缩小与测试任务机制相关的范围。
标签: tfs package nuget nuget-package nuget-package-restore