Post-构建复制命令无效 (.vbproj)

Post-Build copy command not working (.vbproj)

我正在尝试用构建后放置在 \obj\Release\Protected 中的受保护 .exe 覆盖 obj\Release .exe。我正在使用的代码如下,它位于环境的最后,就在 </Project> 之前。但是,出于某种原因,.exe 未被复制。

我是否需要从项目属性-->编译-->Post 构建事件中尝试此操作?

<ItemGroup>
    <MyProjectOutput Include="d:\myproject\obj\Release\Protected\myapp.exe"/>
</ItemGroup>
<Target Name="CopyFiles">
    <Copy SourceFiles="@(MyProjectOuput)" DestinationFolder="d:\myproject\obj\Release" />
</Target>

仅在项目文件中包含目标是不够的。必须对其进行适当设置,以便构建序列能够拾取它。将其命名为“CopyFiles”将无法实现此目的。

有一些众所周知的目标名称被称为构建序列的一部分(您应该能够找到关于此的 MSDN 文档)。我相信“AfterBuild”就是其中之一。所以你的目标应该是这样的:

<Target Name="AfterBuild">
    <Copy SourceFiles="@(MyProjectOuput)" DestinationFolder="d:\myproject\obj\Release" />
</Target>

您可能还需要考虑在目标上添加 InputsOutputs 属性以帮助进行依赖性分析,并且您可能还需要考虑添加 BeforeCleanAfterClean 目标清理 post-复制文件。