Msbuild 发布时将转换应用于配置文件

Msbuild 发布时将转换应用于配置文件,msbuild,visual-studio-2013,publish,msdeploy,Msbuild,Visual Studio 2013,Publish,Msdeploy,我们目前发布web应用程序vis MSDeploy,以创建一个.ZIP文件(文件部署)。 我有一些.config文件,我想在发布时应用转换。因此,我创建了一个appSettings.test.config和一个appSettings.live.config 为了促进这一点,我将其添加到我们的web应用程序的csproj中,该应用程序应用了以下转换: <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPat

我们目前发布web应用程序vis MSDeploy,以创建一个.ZIP文件(文件部署)。 我有一些.config文件,我想在发布时应用转换。因此,我创建了一个
appSettings.test.config
和一个
appSettings.live.config

为了促进这一点,我将其添加到我们的web应用程序的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文件(正如目标中预期的那样)。我要做的是对输出包中的文件应用转换


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

发布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>

注意,我还更改了目标,以确保它在复制完所有文件后立即发生