【问题标题】:Apply transforms to config files on publish在发布时将转换应用于配置文件
【发布时间】:2014-08-22 09:25:16
【问题描述】:

我们目前通过 MSDeploy 发布我们的 Web 应用程序,以创建一个 .ZIP 文件(文件部署)。 我有一些 .config 文件,我想在发布时对其应用转换。所以我创建了一个appSettings.test.config 和一个appSettings.live.config

为了促进这一点,我已将其添加到我们的网络应用程序的 csproj 中,它会应用转换:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
  <Target Name="ApplyConfigTransforms" BeforeTargets="TransformWebConfigCore">
    <TransformXml Source="appSettings.config" Transform="appSettings.$(Configuration).config" Destination="appSettings.config" />
    <TransformXml Source="connectionStrings.config" Transform="connectionStrings.$(Configuration).config" Destination="connectionStrings.config" />
  </Target>

这挂钩到TransformWebConfigCore 目标并完成工作。但是,它将转换应用于我的 web 文件夹中的 appSettings 文件(如目标所期望的那样)。我想要做的是将转换应用于输出包中的文件

我该怎么做?我不知道如何处理您发布时创建的临时文件夹..

【问题讨论】:

    标签: msbuild visual-studio-2013 publish msdeploy


    【解决方案1】:

    当您在发布大约 10 分钟后自己找到答案时,您不会讨厌它。

    我破解了目的地,这解决了问题。如果我在房产中拥有它会很好,但我找不到可以使用的,所以我这样做了:

    <Target Name="ApplyConfigTransforms" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
        <TransformXml Source="appSettings.config" Transform="appSettings.$(Configuration).config" Destination="obj\Test\Package\PackageTmp\appSettings.config" />
        <TransformXml Source="connectionStrings.config" Transform="connectionStrings.$(Configuration).config" Destination="obj\Test\Package\PackageTmp\connectionStrings.config" />
      </Target>
    

    请注意,我还更改了目标,以确保它在我的所有文件都被复制后发生

    【讨论】:

      猜你喜欢
      • 2015-03-11
      • 2021-12-24
      • 2013-10-15
      • 2012-07-21
      • 2011-03-06
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多