在TeamCity“NuGet Pack”运行器类型中,如何避免使用BasePath选项?

时间:2013-10-17 11:33:12

标签: teamcity nuget nuget-package teamcity-7.0

我目前正在使用Teamcity 7.x,而我们尚未准备升级。

对于我们的内部NuGet包,我的规范是相对于nuspec文件的位置(默认情况下),但是当在NuGet Pack运行器中运行时,它们必须相对于构建结帐目录。

例如,我应该有一个包含这个的nuspec:

<files>
  <file src="Content\**" target="content" />
</files>

但是它在TeamCity中不起作用,因为它会自动添加一个BasePath选项,所以我必须将我的nuspec更改为:

<files>
  <file src="Source\Project\Content\**" target="content" />
</files>

如何避免这种情况?我可以更改我的规范,但是我在一个构建步骤中创建了许多包,并且我尝试使用新的-IncludeReferencedProjects选项,但是因为它看起来错误,所以会失败。

不需要BasePath选项,为什么它默认为build checkout目录?

2 个答案:

答案 0 :(得分:3)

根据以下文档,第2步,第3项: http://confluence.jetbrains.com/display/TCD7/NuGet+Pack

  
      
  • 指定基本目录,其中nuspec文件中定义的文件是   找到(路径所在的目录   nuspec被解析,通常是一些bin目录)。如果留空,   TeamCity将使用build checkout目录作为基本目录。
  •   

您可以尝试将此设置调整为项目的根目录(理论上与您的nuspec文件的位置相同),而不是构建结帐目录(默认)。

答案 1 :(得分:1)

也许你可以尝试使用octopack,
源代码:https://github.com/OctopusDeploy/OctoPack
如何安装:http://octopusdeploy.com/documentation/integration/teamcity

你不需要使用章鱼部署。你只能使用octopack来创建nuget包。这个插件直接上传你的包本机teamcity nuget服务器。

祝你好运!

相关问题