c# - Visual Studio 2012 生成后事件 - 错误代码 255

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

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

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,这取决于。使用普通批处理文件运行该代码就像一个魅力!

最佳答案

您需要启用延迟扩展,使用SETLOCAL EnableDelayedExpansion 命令。在构建后事件的顶部进行。之后,您可以使用 !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.

关于c# - Visual Studio 2012 生成后事件 - 错误代码 255,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16660187/

相关文章:

c# - 自动显示 datagridview 中的更改

c# - 是否可以将 schematron 架构编译成 Biztalk 程序集

javascript - 用于开源 NativeScript 的 AppBuilder VS 插件

sql-server - 存储过程 ENCRYPTION 选项取决于构建模式

c# - 如何从通用 DocumentDBRepository 中的 DocumentDB 文档模型读取类型名称?

c# - 正则表达式不匹配时的自定义错误消息

C# 获取调用程序集的父程序集名称

.net - 在 Linux 上使用 .net

c++ - 错误 C2504 : 'BASECLASS' : base class undefined

C# 和 MongoDB。无法完全保存异常对象