【问题标题】:After PostBuild event Visual Studio/MS Build在 Post Build 事件之后 Visual Studio/MSBuild
【发布时间】:2019-08-13 06:13:14
【问题描述】:

我在我的 C# 控制台项目 (Visual Studio 2017) 中使用外部库 UnmanagedExports。我的项目的 csproj 文件除其他外包含以下几行:

<DllExportLibToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64</DllExportLibToolPath>
<NoDllExportsForAnyCpu>false</NoDllExportsForAnyCpu>

在这些行和外部库的帮助下,我的构建过程首先生成了两个文件夹,x86 和 x64。之后项目的 Post Build 事件将文件夹复制到另一个位置。

问题:

更改/更新库后,构建过程顺序已更改。现在,执行构建后事件(复制),然后创建两个文件夹。当然,这是行不通的。

有没有办法在项目构建完成后复制文件夹?不幸的是,构建后事件运行得太快了。

【问题讨论】:

  • 参见this,您可以使用AfterTargets="build" 轻松创建自定义目标,然后在其中运行Exec task。将 post-build-event 中的命令复制到 Exec 任务的命令中。如果它不起作用,请随时告诉我。
  • 效果很好。谢谢你。你能把你的评论变成答案吗?
  • 是的,当然:)

标签: visual-studio msbuild visual-studio-2017 csproj


【解决方案1】:

不幸的是,构建后事件运行得太快了。

我们可以使用AfterTargets 来控制构建顺序。

通常这样的事情会在构建完成后执行:

  <Target Name="CustomTarget" AfterTargets="build">
    <Exec Command="xxx"/>
    <!--copy the content from post-build event here-->
  </Target>

即使在构建后目标之后,此目标也会执行。

并且在某些情况下如果它不能正常工作,我们可以检查我们想要运行的目标,然后使用AfterTargets="TargetWhoCreateFolders" 之类的东西来设置构建顺序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 2011-02-11
    • 2023-03-29
    • 2011-12-16
    • 1970-01-01
    • 2020-06-04
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多