我在 Visual Studio 2012 中的 ASP.NET MVC 4 项目的 .csproj 文件中有类似以下内容的内容:
<Target Name="AfterBuild">
<CallTarget Targets="InstallBuildDependencies" />
<CallTarget Targets="BuildAssets" />
</Target>
<Target Name="InstallBuildDependencies">
<Message Text="Installing build dependencies:" Importance="high" />
<Exec Command="npm install" />
</Target>
<Target Name="BuildAssets">
<Message Text="Building assets:" Importance="high" />
<Exec Command="grunt build" />
</Target>
对于同一项目,在 .pubmxl 中类似这样:
<PropertyGroup>
<!-- Other properties here -->
<InstallBuildDependenciesCmd>npm install</InstallBuildDependenciesCmd>
<BuildDistAssetsCmd>grunt dist</BuildDistAssetsCmd>
<PipelineDependsOn>
InstallBuildDependencies;
BuildDistAssets;
</PipelineDependsOn>
</PropertyGroup>
<Target Name="InstallBuildDependencies">
<Message Text="Installing build dependencies:" Importance="high" />
<Exec Command="$(InstallBuildDependenciesCmd)" />
</Target>
<Target Name="BuildDistAssets" AfterTargets="InstallBuildDependencies">
<Message Text="Building distribution assets:" Importance="high" />
<Exec Command="$(BuildDistAssetsCmd)" />
</Target>
问题是,在第一个代码片段中,在构建中的所有内容完成之前,Visual Studio 的输出控制台中不会显示命令的任何消息或输出。这并不理想,因为最好“实时”查看消息和命令输出。
在第二个片段中,消息和命令输出都在输出控制台中“实时”显示。
是否可以像第二个片段中的消息一样实时显示第一个片段中的消息?为什么我会遇到这种不一致的情况?
Try use DependsOnTargets
代替CallTarget
:
<Target Name="AfterBuild" DependsOnTargets="InstallBuildDependencies,BuildAssets">
</Target>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)