我今天刚下载了TeamCity 7,并决定启动并运行我的Azure解决方案。我并没有尝试做任何花哨的事情,而是从一个非常基本的命令行构建开始:
msbuild /t:Publish /p:Configuration=Release;TargetProfile=Production;PublishDir=S:\HoursTracker\Deployments
这会成功构建并生成一个类似于*的包:
然后我尝试以相同的方式配置TeamCity:
这会成功构建并生成一个类似于*的包:
我不明白为什么MVC项目的规模存在如此巨大的差异。直接从Visual Studio发布产生与我的MSBuild命令完全相同的结果,所以我确信TeamCity是奇怪的人。由于我认为TeamCity没有被破坏,有人可以教我如何正确配置它以便获得预期的输出吗?
*我已使用.zip重命名了包文件,以便可以查看此帖子的详细信息。
答案 0 :(得分:1)
Windows Azure软件包可能比我们预期的要大。您可以将cssx文件重命名为zip,然后您将找到包内的内容。除了Web应用程序的常用文件之外,还有一堆Windows Azure文件。例如,如果启用诊断,您将看到一个诊断文件夹,您可以在其中找到Windows Azure诊断运行时使用的文件。
最诚挚的问候,
徐明。答案 1 :(得分:1)
在做出这个发现后,我意识到我可以为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:参数,以及一些众所周知的参数,如配置名称或项目名称。