2012-07-05 82 views
10

我从我通过我的TeamCity开发机器上运行构建了以下错误:设置TargetProfile为Azure项目

[ResolveServiceConfiguration] WATMessage 
[16:02:05][WATMessage] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\1.7\Microsoft.WindowsAzure.targets(354, 5): No default service configuration "ServiceConfiguration.cscfg" could be found in the project. 
[16:02:05][Xxx.Azure.Production\Xxx.Azure.Production.ccproj] Project Xxx.Azure.Production\Xxx.Azure.Production.ccproj failed. 

同样的解决方案建立在VS.NET没关系。

我想我需要做的是为每个Azure项目设置TargetProfile(有一个以上的抱怨)来覆盖默认的Cloud,但我无法找到在哪里做到这一点。

那么如何设置Azure项目的目标配置文件?

+0

为了解决这个问题,我使用定义中设置的.cscfg为每个Azure项目创建了ServiceConfiguration.Cloud.cscfg。 – Boggin 2012-07-06 08:47:46

+0

您的意思是说所有工作都在Visual Studio中,但在第三方工具TeamCity中不起作用?如果这是Windows Azure问题,请提供更多信息。 – 2012-07-06 09:45:22

+0

我认为VS和TeamCity使用.sln文件构建解决方案是有区别的。在VS中,它似乎可以获取每个.ccproj使用哪个.cscfg。在TeamCity中它使用默认(云)。我需要了解VS.NET构建与TeamCity构建(在** **相同​​的机器上)之间的不同之处,专门用于选择要使用的正确.cscfg。我想我可以指定TargetProfile作为MSBuild的参数,但是我不再使用.sln。 – Boggin 2012-07-06 11:42:59

回答

2

要解决此问题,我已使用定义中设置的.cscfg为每个Azure项目创建了ServiceConfiguration.Cloud.cscfg

26

您是否尝试在命令行设置目标配置文件?

/p:TargetProfile=MyProfile 
+0

由于我有一个为多个配置文件生成Azure包的生成配置,我只是将此参数添加到TeamCity生成配置中的单个VS生成步骤。如果我把它作为一个TeamCity“系统”变量来加入,我将仅限于为每个构建配置只构建一个配置文件的包。 – 2013-11-27 23:58:36

+0

这也可以用于输入到构建配置的参数,它不需要是系统变量。 – 2013-12-03 16:08:26

+1

当我试图从PowerShell脚本调用msbuild时,我遇到了同样的问题,并且这对我来说已经修复了 – 2014-02-17 21:04:58

11

给定一个名为 “ServiceConfiguration.Production.cscfg” 蔚蓝色的服务配置文件:

  1. 在你的TeamCity项目构建的配置,去构建参数(第7步)
  2. 添加系统属性名称为“system.TargetProfile”,值为“Production”

此模式适用于格式为ServiceConfiguration的任何命名配置。[yo你的个人资料] .cscfg。

+4

在我看来:这应该是答案。 – Andries 2014-01-10 10:09:09

0

在我的情况下,我重命名了ServiceConfiguration.Cloud.csfg文件,并且由于构建代理将首先查找该文件,因为默认的TargetProfile是“Cloud”,所以必须重新创建ServiceConfiguration.Cloud.csfg在同一位置的文件,然后走进.ccproj文件并添加<ItemGroup>节点下这行:

<ServiceConfiguration Include="ServiceConfiguration.Cloud.csfg" /> 

然后我重建,问题就解决了。