2013-10-31 50 views
0

我有作为TeamCity的NuGet构建的命令行工具。下载nuget并在TeamCity构建步骤中执行

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

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

但我想知道是否有可能对NuGet包做同样的处理,以便我可以重用该工具用于其他目的?

更新 经过对TeamCity的更多测试后,我认为主要问题是“NuGet Installer”runner需要一个解决方案文件。我可以做我想做的与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安装”应该能处理呢?

我跑TC7所以它可能在TC8

回答

1

合作假设封装解决方案中的引用,你必须启用包丢失恢复启用,包将被下载并解压到您的解决方案。可执行文件将进入已知位置(无论您为该软件包指定了哪个目录)。您应该可以像访问其他资源一样访问可执行文件。

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

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

+0

我认为创建一个解决方案只是为了获取/提取一个包是有点矫枉过正。我只是想在构建步骤中从powershell执行程序。 – orjan

+0

NuGet主要是Visual Studio解决方案的包管理工具。如果您不用于在Visual Studio解决方案中管理软件包,则可以查看其他选项,例如直接使用nuget.exe: http://blog.davidebbo.com/2011/01/installing-nuget-包 - 直from.html – kiprainey

相关问题