"@echo on"用于Visual Studio 2012中的后期构建事件批处理文件

b_l*_*itt 16 visual-studio-2012

我非常希望看到实际的构建事件脚本以进行调试.我已经尝试使用@echo引导脚本,根据文档应该可以工作,但是我还没有在构建输出中看到除exe或显式"echo some text"输出之外的任何内容.

这是我的构建事件:

echo on
cd $(ProjectDir)_dev
PostBuildEvents.bat $(ConfigurationName) $(TargetName)
Run Code Online (Sandbox Code Playgroud)

我确实在输出中看到了这个文本,但是在.bat文件中没有看到任何内容.我还尝试在批处理文件的顶部添加echo,但这也不起作用.

Red*_*low 18

虽然答案会非常晚,但对于来到这里的其他人可能会有用:我找到的唯一方法也包含在文档页面中,它是以下内容:

修改项目设置以收集构建日志中的默认信息量以上.在" 工具"菜单上,单击" 选项".在" 选项"对话框中,单击" 项目和解决方案"节点,然后单击" 生成并运行"节点.然后,在MSBuild项目构建日志文件详细信息框中,单击" 详细信息".

在此输入图像描述


小智 6

我正在努力解决同样的问题.我能够克服这一点的唯一方法是回显每一行,但这需要输入两次,一次用于回声,一次用于执行.所以我决定使用带有echo的变量.

ECHO ON
ECHO C:\myFolder\bin\heat.exe
C:\myFolder\bin\heat.exe
if errorlevel 1 exit 1
Run Code Online (Sandbox Code Playgroud)

变量的更好方法

ECHO ON
SET vCmdl="C:\myFolder\bin\heat.exe" 
ECHO %vCmdl%
%vCmdl%
if errorlevel 1 exit 1
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以在"输出"窗口中看到bat文件的每一行以及它们产生的任何消息,如果发生错误,则VS接收"exit 1"并构建FAILS.


小智 5

一种选择是让构建后事件用于cmd /c启动批处理脚本,该脚本默认情况下会启用回显

例如:

cmd /c PostBuildStep.cmd "$(MSBuildProperty1)" "$(MSBuildProperty2)"
Run Code Online (Sandbox Code Playgroud)