Visual Studio 2012后期构建事件 - 错误代码255

6

以下是我尝试将应用程序可执行文件复制到另一个文件夹并更改其名称的方法:

IF $(ConfigurationName) == Release (
    SET DESTINATION=$(ProjectDir)Output\Distribution

    IF NOT EXIST "%DESTINATION%" ( MD "%DESTINATION%" )

    XCOPY /Q /Y "$(TargetPath)" "%DESTINATION%"
    RENAME "%DESTINATION%\$(TargetFileName)" "$(TargetName).Plain$(TargetExt)"
)

我已经尝试了各种方法使其工作,但总是返回错误代码255或1,具体情况取决于不同的情况。使用普通批处理文件运行该代码却能很好地运行!

2个回答

5
你需要启用延迟扩展,使用命令SETLOCAL EnableDelayedExpansion。在 post-build 事件的顶部执行此操作。然后,你可以通过使用 !VARIABLE_NAME! 访问变量,而不是 %VARIABLE_NAME%(在常规批处理文件中使用百分号符号而不是感叹号符号)。例如:
SETLOCAL EnableDelayedExpansion
IF $(ConfigurationName) == Release (
    SET DESTINATION=$(ProjectDir)Output\Distribution
    echo My destination dir is !DESTINATION!
)

这会输出类似以下的内容。
My destination dir is D:\Work\Projects\PBExample\Output\Distribution.

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接