我在 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 的 Ouput 控制台中不会显示任何消息或命令输出。这并不理想,因为“实时”查看消息和命令输出会更好。
在第二个片段中,消息和命令输出都“实时”显示在输出控制台中。
是否可以像第二个片段中的消息一样,让第一个片段中的消息实时显示?为什么我遇到这种不一致?
最佳答案
尝试使用 DependsOnTargets
而不是 CallTarget
:
<Target Name="AfterBuild" DependsOnTargets="InstallBuildDependencies,BuildAssets">
</Target>
关于.net - MSBuild AfterBuild 消息未实时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125377/