1

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

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

这会成功构建并生成一个如下所示的包*:

在此处输入图像描述

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

在此处输入图像描述

这会成功构建并生成一个如下所示的包*:

在此处输入图像描述

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

*我已经用 .zip 重命名了包文件,以便可以查看这篇文章的详细信息。

4

3 回答 3

2

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

在此处输入图像描述

在做出这个发现之后,我意识到我可以为 MSBuild 指定多个目标,并将“Clean”添加到我的目标开关之前,如下所示:

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

正如预期的那样,这删除了这些文件夹。显然,TeamCity 为您隐含地指定了“清洁”。谜团已揭开。

于 2012-04-19T03:49:48.870 回答
1

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

最好的祝福,

明旭。

于 2012-04-18T08:25:20.930 回答
0

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

TeamCity 以 /p 的数量开始 msbuild:参数取自“属性和环境变量”部分,以及一些众所周知的参数,如配置名称或项目名称。

于 2012-04-18T06:35:17.977 回答