2012-07-05 83 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" /> 

然後我重建,問題就解決了。