【问题标题】:Set TargetProfile for an Azure project为 Azure 项目设置 TargetProfile
【发布时间】:2012-07-05 16:22:56
【问题描述】:

我在开发机器上通过 TeamCity 运行的构建遇到以下错误:

[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 项目设置目标配置文件?

【问题讨论】:

  • 为了解决这个问题,我使用定义中设置的 .cscfg 为每个 Azure 项目创建了 ServiceConfiguration.Cloud.cscfg。
  • 你的意思是一切都可以在 Visual Studio 中运行,但在第三方工具 TeamCity 中无法运行?如果是 Windows Azure 问题,请提供更多信息。
  • 我认为 VS 和 TeamCity 使用 .sln 文件构建解决方案的方式有所不同。在 VS 中,它似乎会为每个 .ccproj 选择使用哪个 .cscfg。在 TeamCity 中,它使用默认值(云)。我需要了解 VS.NET 构建和 TeamCity 构建(在 same 机器上)之间的区别,专门用于选择要使用的正确 .cscfg。我想我可以将 TargetProfile 指定为 MSBuild 的参数,但我不再使用 .sln。
  • 我对 TeamCity 不熟悉。但是由于VS工作正常,我建议你继续使用VS。让我们看看其他人是否可以对 TeamCity 发表评论。
  • 这还开着吗?是否有任何回复无助于解决此问题?如果解决了,请接受回答并关闭问题,如果没有,请说明当前问题是什么。

标签: visual-studio-2010 azure teamcity-7.0


【解决方案1】:

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

/p:TargetProfile=MyProfile

【讨论】:

  • 由于我有一个为多个配置文件生成 Azure 包的单一构建配置,我只是将此参数添加到我的 TeamCity 构建配置中的各个 VS 构建步骤中。如果我将它作为 TeamCity“系统”变量放入,我将仅限于为每个构建配置构建一个配置文件。
  • 这也可以与输入到构建配置的参数一起使用,它不需要是系统变量。
  • 我在尝试从 powershell 脚本调用 msbuild 时遇到了同样的问题,这为我解决了问题
  • 如果配置是ServiceConfiguration.Production.cscfg,你的目标配置文件应该是/p:TargetProfile=Production
【解决方案2】:

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

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

此模式适用于 ServiceConfiguration.[your profile].cscfg 格式的任何命名配置。

【讨论】:

  • 在我看来:这应该是答案。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    在我的例子中,我重命名了 ServiceConfiguration.Cloud.csfg 文件,并且由于默认 TargetProfile 是“Cloud”,构建代理将首先查找该文件,因此我不得不重新创建 ServiceConfiguration.Cloud.csfg 文件在同一位置,然后进入 .ccproj 文件并在 <ItemGroup> 节点下添加此行:

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

    然后我重建并解决了问题。

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      相关资源
      最近更新 更多