【问题标题】:Post-Build copy command not working (.vbproj)构建后复制命令不起作用 (.vbproj)
【发布时间】:2021-12-27 03:34:31
【问题描述】:

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

我是否需要从项目属性-->编译-->发布构建事件中尝试这个?

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

【问题讨论】:

  • “输出”拼写错误。

标签: vb.net msbuild-task


【解决方案1】:

仅在项目文件中包含目标是不够的。它必须被适当地设置,以便它被构建序列拾取。将其命名为“CopyFiles”将无法做到这一点。

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

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

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

【讨论】:

    猜你喜欢
    • 2018-06-02
    • 1970-01-01
    • 2017-02-23
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多