繁体   English   中英

在Visual Studio 2013中发布具有代码1错误的事件生成退出

[英]Post event build exit with code 1 error in Visual studio 2013

这是脚本:

copy /y "$(SolutionDir)Libs\Detect.dll" "$(SolutionDir)$(ConfigurationName)"
call editbin.exe /LARGEADDRESSAWARE SER.EXE > post.txt
call dumpbin.exe /HEADERS SER.EXE > post1.txt

错误是

错误306命令“复制/ y“ C:\\ dev \\ blah \\ Libs \\ Detect.dll”“ C:\\ dev \\ blah \\ Debug”调用editbin.exe / LARGEADDRESSAWARE SER.EXE> post.txt调用dumpbin.exe / HEADERS SER.EXE> post1.txt“退出,代码为1。

在Visual Studio 2013中发布具有代码1错误的事件生成退出

仅需要确认一件事:该SER.EXE仅在发布模式下执行,还是该SER.EXE在发布文件夹中存在,应该在调试和发布模式下执行?

如果仅在发行版中执行此SER.EXE ,则应考虑Lex的建议。 构建前和构建后事件作为批处理脚本运行。 您可以在$(ConfigurationName)上执行条件语句。 例如:

copy /y "$(SolutionDir)Libs\Detect.dll" "$(SolutionDir)$(ConfigurationName)"
if $(ConfigurationName) == Release call editbin.exe /LARGEADDRESSAWARE "SER.EXE"> post.txt
if $(ConfigurationName) == Release call dumpbin.exe /HEADERS SER.EXE > post1.txt

如果此SER.EXE存在于发行文件夹中,并且应在调试和发行模式下执行,则只需在命令中指定发行文件夹:

 call editbin.exe /LARGEADDRESSAWARE "Release\SER.EXE"> post.txt
 call dumpbin.exe /HEADERS "Release\SER.EXE"> post1.txt

显然,您还需要确保可以执行SER.EXE ,可以在控制台应用程序项目中使用以下命令进行测试:

call editbin.exe /LARGEADDRESSAWARE "$(TargetPath)"> post.txt

注意:如果要在调试和发布模式下都使用此生成后事件,则应为所有配置添加命令行,否则此命令将仅在一种模式下起作用(仅提醒):

在此处输入图片说明

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM