您可以使用下面的解決方案來實現它。在這之間,我得到了我長期閱讀的最好的書籍之一的指導。 Book is 「由微軟構建引擎內部」由Sayed Ibrahim Hashimi和William Bartholomew撰寫。本書以優秀的方式閱讀細節。
創建的MSBuild凸出文件如下圖所示
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="TransformAll">
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>
<PropertyGroup>
<DestDirectory>C:\Temp\DeployPackage\TRANSFORM_CONFIGS\</DestDirectory>
</PropertyGroup>
<ItemGroup>
<TransformFiles Include="$(FilesToTransform)"/>
</ItemGroup>
<Target Name="TransformAll" DependsOnTargets="ValidateSettings">
<MakeDir Directories="$(DestDirectory)"/>
<TransformXml Source="..\web.config"
Transform="%(TransformFiles.Identity)"
Destination="@(TransformFiles->'$(DestDirectory)%(Filename).transformed.config')" />
</Target>
<Target Name="ValidateSettings">
<Error Text="FilesToTransform cannot be empty"
Condition=" '$(FilesToTransform)'=='' "/>
<Error Text="Couldn't find transform file at [%(TransformFiles.Fullpath)]"
Condition =" !Exists('%(TransformFiles.Fullpath)') "/>
</Target>
</Project>
文件夾中添加上述PROJ文件並添加您的環境特定的文件後,只需運行下面經過的MSBuild訪問命令行
msbuild transform.proj /t:TransformAll /p:FilesToTransform="Lab.config;Test.config;Live.config"
希望這有助於。不要忘記購買/引用「Inside the Microsoft Build Engine」一書。
看看下面解決的實現 – DotNetInfo 2011-06-20 01:08:40