Last active
August 29, 2015 14:24
-
-
Save tcmorris/54d5d98c1ea70a73c266 to your computer and use it in GitHub Desktop.
MSBuild targets for config transforms. Will pick up any *.config in root or config folder per environment and also allows for machine specific transforms.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8" ?> | |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<UsingTask TaskName="TransformXml" AssemblyFile=".\Deploy\Microsoft.Web.Publishing.Tasks.dll" /> | |
<ItemGroup> | |
<ConfigFiles Include=".\*.$(Environment).config;.\config\*.$(Environment).config"> | |
<OriginalPath>%(ConfigFiles.RootDir)%(ConfigFiles.Directory)$([System.String]::Copy('%(ConfigFiles.Filename)').Replace('.$(Environment)',''))%(ConfigFiles.Extension)</OriginalPath> | |
</ConfigFiles> | |
<ConfigFiles Include=".\*.$(COMPUTERNAME).config;.\config\*.$(COMPUTERNAME).config"> | |
<OriginalPath>%(ConfigFiles.RootDir)%(ConfigFiles.Directory)$([System.String]::Copy('%(ConfigFiles.Filename)').Replace('.$(COMPUTERNAME)', ''))%(ConfigFiles.Extension)</OriginalPath> | |
</ConfigFiles> | |
<Transforms Include=".\*.*.config;.\config\*.*.config" /> | |
</ItemGroup> | |
<Target Name="TransformConfigs"> | |
<Message Text="Transforming @(ConfigFiles->Count()) config(s)..." Importance="High" Condition="'@(ConfigFiles->Count())' > 0" /> | |
<TransformXml Source="%(ConfigFiles.OriginalPath)" Transform="%(ConfigFiles.FullPath)" Destination="%(ConfigFiles.OriginalPath)" StackTrace="true" Condition="'@(ConfigFiles->Count())' > 0" /> | |
</Target> | |
<Target Name="DeleteTransforms"> | |
<Delete Files="%(Transforms.FullPath)" /> | |
</Target> | |
<Target Name="Debug"> | |
<Message Text="Found transform %(ConfigFiles.Filename)" Condition="'@(ConfigFiles->Count())' > 0" /> | |
<Message Text="Deleting %(Transforms.Filename)" /> | |
</Target> | |
</Project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment