Msbuild 发布时将转换应用于配置文件
我们目前发布web应用程序vis MSDeploy,以创建一个.ZIP文件(文件部署)。 我有一些.config文件,我想在发布时应用转换。因此,我创建了一个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
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>
注意,我还更改了目标,以确保它在复制完所有文件后立即发生