【问题标题】:TeamCity setup and librariesTeamCity 设置和库
【发布时间】:2015-11-23 19:08:34
【问题描述】:
我已经部分设置了 TeamCity。现在它从 TFS 下载代码并尝试使用不成功的 MSBuild 构建它。我知道我做错了什么。我在代码中添加了一些库(一个 ASP.NET 网站)。我知道将 dll 文件添加到版本控制(TFS)不是一个好主意,但是如果我不签入它们,当 TeamCity 下载代码时,它没有该库,因此 MSBuild 无法成功构建它。我想知道解决该问题的最佳做法是什么?
【问题讨论】:
标签:
tfs
msbuild
continuous-integration
teamcity
【解决方案1】:
对于 .net 中的依赖项管理,我建议您查看内置于 nuget 提要中的 TeamCity。您可以直接从 TeamCity 中使用一个提要,充当服务器。正如您所说,应该避免在(任何)VCS 中提交依赖项......
【解决方案2】:
这取决于您正在处理的 dll 类型。
如果它们在 NuGet.org 上可用,请使用 NuGet 和包管理器控制台将引用添加到您的解决方案。然后只需将 NuGet.exe 放在您的构建服务器上,然后运行
NuGet.exe restore YourSolution.sln
作为您的第一个构建步骤。
如果它们是内部 dll,那么您有几个选择。第一个是,正如 TeNGiL 所提到的,设置一个私有 NuGet 存储库,并将内部 dll 发布到该提要,并在您的构建服务器中从中提取。
另一种选择是在源代码控制中创建一个“引用”目录,其中包含 dll,从源代码控制目录在您的解决方案中引用它们,然后将它们作为构建配置的一部分拉下来。在合理范围内,这确实没有听起来那么糟糕,并且是一个完全可以接受的临时解决方案,直到每个人都同意使用私有 NuGet 提要或类似的东西。
【解决方案3】:
在 Visual Studio 中打开 TeamCIty 的 checkout 目录中的代码并尝试构建。我很确定 Visual Studio 会为您提供确切的错误消息,说明出了什么问题。
必须恢复丢失的包。如下图所示,使用 Nuget 安装程序构建步骤来恢复您的包。