我试图把一切在web.config文件中的一个项目,我有,这里有一个我的树结构:
- Transform.bat
- 变换
- ConfigTransform.proj
- Web.Transform.config
- 网站
- web.config中
- 查看
- web.config中
还有更多的web.config文件,但这个想法是,这会发现所有这些,适用于他们相同的配置转换。
我已经采取了从几提示博客中,我发现 ,但我陷在最后一步,实际的转型。 也有一个位,我真的不喜欢中间有一个粗略的部分(我不太明白我在做什么,我明明做错了)。 这里就是我至今:
<Project ToolsVersion="4.0" DefaultTargets="Transform" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="TransformXml" AssemblyFile="Tools\Microsoft.Web.Publishing.Tasks.dll"/>
<PropertyGroup>
<SitePath>..\..\Website</SitePath>
<WebConfigTransformInputFile>$(SitePath)\Web.config</WebConfigTransformInputFile>
<WebConfigTransformFile>Web.Transform.config</WebConfigTransformFile>
<OutDir>..\N\N\</OutDir>
</PropertyGroup>
<ItemGroup>
<_FilesToTransform Include="$(SitePath)\**\web.config"/>
</ItemGroup>
<Target Name="Transform">
<MakeDir Directories="@(_FilesToTransform->'$(OutDir)%(RelativeDir)')" />
<TransformXml Source="@(_FilesToTransform->'$(OutDir)%(RelativeDir)%(Filename)%(Extension)')"
Transform="$(WebConfigTransformFile)"
Destination="@(_FilesToTransform->'$(OutDir)%(RelativeDir)%(Filename)%(Extension)')" />
</Target>
</Project>
我Transform.bat看起来是这样的:
%systemroot%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe %CD%\Transforms\ConfigTransform.proj
所以,当我打电话批次,获得创建相应的目录。 然而,正如你可以看到我已经为与OUTDIR一点点创意,使其.. \ n \ n。 出于某种原因,如果我不这样做的OUTDIR路径将是完全一样的输入目录。 所以,我显然需要改变MAKEDIR的东西,但我不知道是什么。
当它开始做转换,真正的问题来了。 我试图保持的TransformXML源参数这样或像这样:
@(_FilesToTransformNotAppConfig->'%(FullPath)')
后者给了我一个错误“无法打开源文件:不支持给定路径的格式。” 和前给了我这样的输出:
Build started 30-4-2012 14:02:48.
Project "D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj" on node 1 (default targets).
Transform:
Creating directory "..\N\N\..\..\Website\Views\".
Transforming Source File: ..\N\N\..\..\Website\Views\Web.config;..\N\N\..\..\Website\Web.config
D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj(32,2): error : Could not open Source file: Could not find a part of the path 'D:\Dev\transform\DoTransforms\Website\Views\Web.config;\Website\Web.config'.
Transformation failed
Done Building Project "D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj" (default targets) -- FAILED.
Build FAILED.
总结我的问题:
- 如何避免在OUTDIR路径问题? 我摆弄着多条路径,但我无法得到它的权利。
- 我如何获得的TransformXML任务接受源属性中的多个文件?