【发布时间】:2016-03-16 14:54:52
【问题描述】:
几天来,我一直在摆弄基于 TFS2015 任务的构建系统。我一直遇到的问题如下:
我正在尝试将 nuget 包用于我的项目中的外部引用。这些外部引用实际上不是第 3 方库,而只是我们公司的其他(共享)库。我能够在任务中恢复包,但我不知道如何让“Visual Studio Build”了解在哪里可以找到恢复的包。它使用项目文件中的提示路径来确定要包含的外部库的位置。但是,这些路径(在本地用于开发)与构建服务器上使用的路径不匹配。我可以为 msbuild 参数添加一个引用路径,但不会递归搜索此路径,并且 nuget 包还原会还原包,包括包的整个文件夹结构。
我的问题是。是否有一种正确的方法可以使“Visual Studio 构建”步骤了解我的包的位置,而无需更改项目文件中的提示路径。如果不是,那么去这里的正常方式是什么。我是否应该完全放弃 nuget,因为我们的引用实际上不是 3rd 方库,如果是,解决引用的替代方法是什么(不将二进制文件添加到源代码控制)
我的问题似乎与Storing nuget packages in alternate location on build server 有关,但他似乎已使用复制到引用的提示路径中指定的位置来修复它,这对我来说不是一个选项。在我看来,应该有一种简单的方法可以将 msbuild 指向库的正确位置。
【问题讨论】:
-
msbuild 步骤是否出错?我们还使用新的脚本构建系统。我们在 MSBuild 步骤之前添加了一个 NuGet 安装程序构建步骤,它似乎“正常工作”。您是使用在线 TFS (VSTS) 还是本地?
-
我们使用本地 tfs。 msbuild 根本找不到引用,因为它在项目文件的提示路径中指定的位置查找引用。但是,此位置与构建服务器上的引用位置不同。当我强制 dll 与它们在开发机器上的位置相同时,我让 nuget 恢复工作。这可能也是适合您的原因。但是,在我们的场景中,位置不同
-
dll 不应位于自定义程序集的版本控制路径中。至少在较旧的 TFS 上
-
这就是我要避免的重点。我已经让它在没有 dll 的版本控制中工作,但是没有在不同位置的程序集。
标签: msbuild visual-studio-2015 nuget tfsbuild