【问题标题】:Post event build exit with code 1 error in Visual studio 2013在 Visual Studio 2013 中发布事件生成退出并出现代码 1 错误
【发布时间】:2017-09-07 15:36:54
【问题描述】:

这是脚本:

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 命令 "copy /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.

【问题讨论】:

  • 如果SER.EXE只出现在Release文件夹中,您可以手动编辑项目文件为post build事件添加条件,使其仅适用于release build。

标签: c# .net visual-studio msbuild post-build-event


【解决方案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存在于release文件夹中,应该在debug和release模式下执行,你只需要在命令中指定release文件夹即可:

 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

注意:当你想在调试和发布模式下使用这个构建后事件时,你应该为所有配置添加命令行,否则这个命令将只作用于一种模式(只是一个提醒):

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2017-07-24
    • 1970-01-01
    相关资源
    最近更新 更多