1

我有由 TeamCity 构建为 NuGet 的命令行工具。

我的问题是我想在同一 TeamCity 服务器的构建步骤中使用该工具,并在该步骤中执行命令行工具。

最简单的方法是只编译命令行工具并创建工件而不创建 NuGet,然后在其他构建过程中获取工件依赖项并执行命令。

但是我想知道是否可以对 NuGet 包执行相同的操作,以便我可以将该工具用于其他目的?

更新 在使用 TeamCity 进行更多测试后,我认为主要问题是“NuGet Installer”运行程序需要一个解决方案文件。我可以用 powershell 任务做我想做的事:

# install the latest package 
%teamcity.agent.tools.dir%\NuGet.CommandLine.2.7.1.nupkg\tools\NuGet.exe install octospike-migrator -o tools -excludeversion -source %teamcity.nuget.feed.server%
# run the command line tool
.\tools\octospike-migrator\lib\Octospike.Command.exe

上面的构建步骤正在工作,但我觉得默认运行程序“Nuget Installer”应该能够处理这个?

我正在运行 TC7,所以它可能在 TC8 中工作

4

1 回答 1

1

假设您的解决方案中引用了该包,并且您启用了缺少包恢复功能,则该包将被下载并解压缩到您的解决方案中。可执行文件将进入一个已知位置(您为包指定的任何目录)。然后,您应该能够像访问任何其他资源一样访问可执行文件。

如果您在解压资源的位置和方式方面需要灵活性(例如,如果它们需要进入项目外部的目录中),您可以将其构建为 NuGet 中的工具包。

在 TeamCity 中,如果您将此过程分解为单独的任务,那么复杂性将会降低。

于 2013-10-31T15:21:02.903 回答