【问题标题】:How to enable Package creation of Azure project on TFS Build Server如何在 TFS 构建服务器上启用 Azure 项目的包创建
【发布时间】:2012-04-21 22:48:24
【问题描述】:

我有一个 WebRole Azure 项目,我计划在我的解决方案构建成功时在 TFS 构建服务器上生成包。

以下是我的解决方案的简要说明:

  1. Web 应用程序。
  2. 在开发过程中遵循 TDD 方法。
  3. 1 个网络角色。
  4. 两种配置(云端和本地)
  5. 基于 ACS 的验证。

我在 Visual Studio 中使用 PACKAGE 命令创建包。

在运行 PACKAGE 命令时,我选择以下:

  1. 服务配置:云。
  2. 构建配置:发布。
  3. 选中:启用远程桌面。

使用与 Visual Studio 中相同的设置在 TFS 构建服务器上创建包的过程是什么?

感谢任何帮助。

【问题讨论】:

    标签: tfs azure cloud tfsbuild


    【解决方案1】:

    您可以为此目的使用 msbuild CorePublish 目标。 (参见例如this blog post

    作为安全最佳实践,远程桌面已在源树中启用,但实际证书、远程桌面设置不在其中,而是通过在部署期间更改配置来添加的。 构建配置的行为与预期一样,ServiceConfiguration 风格最终将成为单独的 cscfg 文件。

    【讨论】:

      【解决方案2】:

      我们有一个所有项目都包含的 Common.Targets,包括 .ccproj。它有:

      <Import Project=".\AzurePackages.Targets" Condition=" '$(CloudToolsVersion)' != '' And '$(BuildingInsideVisualStudio)' != 'true'"/>
      

      AzurePackages.Targets(稍作编辑):

      <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <!-- Create Azure packages -->
        <PackageName>$(AssemblyName).cspkg</PackageName>
        <AzurePackageDir>$(OutDir)Packages\$(AssemblyName).Azure\</AzurePackageDir>
      </PropertyGroup>
      
      <Target Name="CopyPackageToOutDir" AfterTargets="Build" DependsOnTargets="CorePublish" Condition="'$(InRecursiveCall)' == ''">
        <Copy SourceFiles="@(PublishServicePackage)" DestinationFolder="$(AzurePackageDir)" />
      </Target>
      

      至于配置,我们希望每个包附近有多个.cscfg,所以我们在部署时决定取哪个。我们有一个解决方案,但是对于一个问题来说太复杂了。

      【讨论】:

        猜你喜欢
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 2018-02-24
        • 2016-12-21
        • 2013-03-11
        • 2018-02-03
        • 2017-04-16
        • 1970-01-01
        相关资源
        最近更新 更多