SlowCheetah wap变换从visual studio执行,但不是从msbuild执行

时间:2013-04-24 16:54:06

标签: visual-studio-2012 slowcheetah

我有一个安装了SlowCheetah NuGet包的MVC4 Web应用程序项目。在这个项目中,我有一个我希望转换的xml文件(而不是Web.config)。在csproj文件中,Item将TransformOnBuild设置为true。当我从visual studio构建项目时,文件会被转换。但是,如果我直接执行msbuild,例如msbuild.exe mysolution.sln,则文件不会被转换。

看看SlowCheetah.Transforms.targets,msbuild的行为似乎对我有意义。对于Web应用程序项目,TransformAllFiles目标不包含在BuildDepends属性中。相反,它依赖于钩子进入发布管道。

然而,我不明白的是,当我从visual studio构建时,转换是如何发生的。此外,尽管转换运行,但构建输出中没有证据,即使在详细级别也是如此。如果我将以下目标添加到我的Web项目中,它也会在从visual studio构建时运行(而不是从msbuild构建),但不会产生任何输出。

<Target Name="DoStuff" AfterTargets="TransformAllFiles">
   <Copy SourceFiles="$(ProjectDir)_Web.config" DestinationFiles="$(ProjectDir)Web.configXXX" />   
   <Message Importance="high" Text="DoStuff completed"/>
</Target>

当我从Visual Studio构建项目时,我可以看到复制操作的结果,但输出中没有消息,也没有提到构建日志中的DoStuff目标。很明显,目标正在运行,但在构建输出中没有任何证据。任何人都可以解释这种行为吗?

0 个答案:

没有答案