TeamCity在封面下传递给MSBuild的参数是什么?

时间:2012-04-18 02:05:18

标签: msbuild azure teamcity teamcity-7.0

我今天刚下载了TeamCity 7,并决定启动并运行我的Azure解决方案。我并没有尝试做任何花哨的事情,而是从一个非常基本的命令行构建开始:

msbuild /t:Publish /p:Configuration=Release;TargetProfile=Production;PublishDir=S:\HoursTracker\Deployments

这会成功构建并生成一个类似于*的包:

enter image description here

然后我尝试以相同的方式配置TeamCity:

enter image description here

这会成功构建并生成一个类似于*的包:

enter image description here

我不明白为什么MVC项目的规模存在如此巨大的差异。直接从Visual Studio发布产生与我的MSBuild命令完全相同的结果,所以我确信TeamCity是奇怪的人。由于我认为TeamCity没有被破坏,有人可以教我如何正确配置它以便获得预期的输出吗?

*我已使用.zip重命名了包文件,以便可以查看此帖子的详细信息。

3 个答案:

答案 0 :(得分:1)

Windows Azure软件包可能比我们预期的要大。您可以将cssx文件重命名为zip,然后您将找到包内的内容。除了Web应用程序的常用文件之外,还有一堆Windows Azure文件。例如,如果启用诊断,您将看到一个诊断文件夹,您可以在其中找到Windows Azure诊断运行时使用的文件。

最诚挚的问候,

徐明。

答案 1 :(得分:1)

明的回答帮助我解开了这个谜团。在检查了zip文件的内容之后,我发现不同之处在于我的MSBuild包中包含bin和obj文件夹而TeamCity包没有。

enter image description here

在做出这个发现后,我意识到我可以为MSBuild指定多个目标,并将“清理”前置到我的目标切换中,如下所示:

msbuild /t:Clean;Publish /p:Configuration=Release;TargetProfile=Production;PublishDir=S:\HoursTracker\Deployments

正如所料,这删除了这些文件夹。显然,TeamCity为您隐含地指定了“Clean”。神秘解决了。

答案 2 :(得分:0)

为什么你为msbuild跑步者指定了x64?尝试选择工具版本。您尚未指定/ p:Platform参数。发布任务是否涉及重建?

TeamCity启动msbuild,其中包含从“属性和环境变量”部分获取的/ p:参数,以及一些众所周知的参数,如配置名称或项目名称。