0

我使用带有 Visual Studio Runner 类型的 VS 2012 和 Teamcity。我的解决方案针对不同的环境有多个 web.config 转换。我想遵循持续交付,使用多个包构建解决方案,并在需要时使用工件将它们部署到相关环境而无需再次构建。我不直接使用 MSBuild,我使用 VS 包配置文件(pubxml)我想要这样的东西:

    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>Package</WebPublishMethod>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <DesktopBuildPackageLocation />
    <PackageAsSingleFile>true</PackageAsSingleFile>
    <DeployIisAppPath/>
    <PublishDatabaseSettings/>
  </PropertyGroup>

  <ItemGroup>
    <LastUsedBuildConfiguration Include="UAT" />
    <LastUsedBuildConfiguration Include="APCI" />
  </ItemGroup> </Project>

然后我希望结果是工件 obj 中的两个文件夹,每个文件夹都有自己的转换 web.config。有什么帮助吗?

4

1 回答 1

0

在单个构建中创建多个转换配置的唯一方法是在构建过程中直接使用 XDT 引擎。它在 NuGet 上已经有一段时间了,所以应该不会太麻烦。

话虽如此,我已经使用 msdeploy / publish 配置文件大约两年了,此后我移至以下位置:

  1. 使用 a 创建一个 msdeploy 包,Package.pubxml并使用 MSDeploy 参数定义所有转换(这两个参数都比 XDT 更不强大)
  2. 创建一个PublishProfile.pubxml文件(以便您拥有 Visual Studio 体验),但在其中声明所有参数值PublishProfile.parameters.xml
  3. 在 a 中执行任何“除调试以外的所有环境”转换,Web.Release.config以避免部署参数过于复杂
  4. .deploy.cmd通过调用生成的(或msdeploy.exe直接)在构建服务器上部署包

此设置允许您继续使用 Visual Studio 进行发布,但您也可以一直向下移动到 msdeploy 命令行,因为该.parameters.xml文件是使用 msdeploy 参数架构定义的。

Web 部署参数有大量“浮动”文档,但没有真正的“参考”主页。以下是一些有用的链接:

于 2014-04-22T09:54:16.470 回答