【问题标题】:Download nuget and execute in a TeamCity build step下载 nuget 并在 TeamCity 构建步骤中执行
【发布时间】:2013-10-31 12:50:50
【问题描述】:

我有一个由 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 中运行

【问题讨论】:

    标签: teamcity nuget


    【解决方案1】:

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

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

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

    【讨论】:

    • 我认为创建一个仅用于获取/提取包的解决方案有点矫枉过正。我只想在构建步骤中从 powershell 执行程序。
    • NuGet 主要是用于 Visual Studio 解决方案的包管理工具。如果您不使用在 Visual Studio 解决方案中管理包,您可以查看其他选项,例如直接使用 nuget.exe:blog.davidebbo.com/2011/01/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多