我有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
中运行答案 0 :(得分:1)
假设您的解决方案中引用了软件包并且您启用了缺少软件包恢复的功能,则将下载软件包并将其解压缩到您的解决方案中。可执行文件将进入已知位置(您为程序包指定的任何目录)。然后,您应该像访问任何其他资源一样访问可执行文件。
如果您需要在资源解包的位置和方式方面具有灵活性(例如,如果他们需要进入项目之外的目录),您可以将其构建为NuGet中的Tools包。
在TeamCity中,如果将此流程分解为单独的任务,复杂性将会降低。