New way of transforming web.config file that should work in both VS2010 and 2012

Moved transform responsibility to Umbraco.Web.UI (mainly because circular
dependency has been solved already a few months ago)
Managed to clean up build.proj significantly in the process
This commit is contained in:
Sebastiaan Janssen
2012-12-03 15:53:06 -01:00
parent b02ad9e698
commit 97639040f0
5 changed files with 41 additions and 505 deletions

View File

@@ -2245,7 +2245,28 @@ xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.0\x86\*.* "$(TargetDir)x86\"
<Import Project="$(MSBuildStartupDirectory)\..\src\umbraco.presentation.targets" Condition="$(BuildingInsideVisualStudio) != true" />
<Import Project="$(SolutionDir)umbraco.presentation.targets" Condition="$(BuildingInsideVisualStudio) == true" />
<PropertyGroup>
<!--<PostBuildEvent>xcopy "$(ProjectDir)..\..\lib\*.dll" "$(TargetDir)*.dll" /Y</PostBuildEvent>-->
<PostBuildEvent></PostBuildEvent>
</PropertyGroup>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<Target Name="BeforeBuild">
<Copy
SourceFiles="$(ProjectDir)web.Template.config"
DestinationFiles="$(ProjectDir)Web.config"
OverwriteReadOnlyFiles="true"
SkipUnchangedFiles="false"
Condition="!Exists('$(ProjectDir)Web.config')"
/>
<TransformXml Source="$(ProjectDir)Web.config" Transform="$(ProjectDir)web.Template.$(Configuration).config" Destination="$(ProjectDir)Web.$(Configuration).config.transformed" />
<Message Text="BeforeBuild was performed" Importance="high" />
</Target>
<Target Name="AfterBuild">
<Copy
SourceFiles="$(ProjectDir)Web.$(Configuration).config.transformed"
DestinationFiles="$(ProjectDir)Web.config"
OverwriteReadOnlyFiles="true"
SkipUnchangedFiles="false"
Condition="$(BuildingInsideVisualStudio) == true"
/>
</Target>
</Project>

View File

@@ -57,39 +57,6 @@
*****************************************************
-->
<!-- Make sure web.config will be there even for package/publish -->
<Target Name="CopyWebConfig" BeforeTargets="Build;Rebuild">
<PropertyGroup>
<OriginalFileName>$(ProjDir)Web.Template.config</OriginalFileName>
<OutputFileName>$(ProjOutputDir)Web.config</OutputFileName>
</PropertyGroup>
<Copy
SourceFiles="$(OriginalFileName)"
DestinationFiles="$(OutputFileName)"
OverwriteReadOnlyFiles="true"
SkipUnchangedFiles="false"
Condition="!Exists('$(OutputFileName)')"
/>
</Target>
<Target Name="CustomTarget" AfterTargets="CopyWebConfig">
<Message Text="Building in VS? $(BuildingInsideVisualStudio)" Importance="high" />
<Message Text="Transforming: $(WebConfigSource), running MSBuild on project $(MSBuildProjectDirectory)" Importance="high" />
<PropertyGroup>
<OriginalFileName>$(ProjDir)Web.Template.config</OriginalFileName>
<OutputFileName>$(ProjOutputDir)Web.config</OutputFileName>
</PropertyGroup>
<Message Text="$(OriginalFileName)" Importance="high" />
<Message Text="$(OutputFileName)" Importance="high" />
<TransformXml Condition="$(BuildingInsideVisualStudio) == ''" Source="$(OriginalFileName)" Transform="$(WebConfigSource)" Destination="$(OutputFileName)" />
<TransformXml Condition="$(BuildingInsideVisualStudio) == 'true'" Source="$(OriginalFileName)" Transform="$(WebConfigSource)" Destination="$(OutputFileName)" />
</Target>
<Target Name="ResetConfigFiles" Condition="$(ProjDir) != $(ProjOutputDir)" BeforeTargets="Build;Rebuild" Inputs="@(ConfigFiles)" Outputs="%(Identity).Dummy">
<PropertyGroup>