You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.vbproj项目Post-Build复制命令不生效无法复制exe问题咨询

问题排查

你写的MSBuild脚本未生效存在两个明确错误:

  • 拼写错误:ItemGroup中定义的项名称为MyProjectOutput,Copy任务引用时误写为@(MyProjectOuput),少了1个字母t,导致源文件路径识别为空
  • 缺少触发条件:自定义的CopyFiles目标未绑定执行时机,默认不会在生成流程中自动运行
解决方案

两种实现方式均可,不需要强制切换为生成后事件,可按需选择:

方案1:修复现有MSBuild脚本

将你写在.vbproj中的代码替换为以下内容即可,使用内置变量替代硬编码路径适配性更强:

<ItemGroup>
    <MyProjectOutput Include="$(IntermediateOutputPath)Protected\myapp.exe"/>
</ItemGroup>
<Target Name="CopyProtectedExecutable" AfterTargets="AfterBuild">
    <Copy SourceFiles="@(MyProjectOutput)" DestinationFolder="$(IntermediateOutputPath)" OverwriteReadOnlyFiles="True" />
</Target>

参数说明:

  • AfterTargets="AfterBuild" 表示目标会在整个生成流程完成后自动执行
  • $(IntermediateOutputPath) 是VS内置变量,对应obj\Release、obj\Debug这类中间输出路径,不用写死绝对路径
  • OverwriteReadOnlyFiles="True" 可避免原文件被锁定时复制失败

方案2:使用生成后事件实现

如果你偏好可视化配置,也可以用「项目属性→Compile→Post Build Events」的生成后事件功能,直接在输入框中添加以下命令:

copy /Y "$(ProjectDir)obj\$(Configuration)\Protected\myapp.exe" "$(ProjectDir)obj\$(Configuration)\"

/Y参数表示直接覆盖目标路径已有文件,无需二次确认。

内容的提问来源于stack exchange,提问作者user16594857

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:15:04