前/后构建中的 ConfuserEx.exe 在 VS 中异步执行

问题描述

我有一个在构建时生成 .msi 的安装程序项目。在预构建事件中,我调用 Confuser.CLI.exe 来混淆代码,但是 exe 是异步工作的并且花费了太多时间,并且编译器在 exe 之前完成,所以我有 { {1}} 与旧的 .msi,然后当 DLLs 生成时,新的 .msi 覆盖旧的。我什至尝试过构建后事件,但得到了相同的结果。

解决方法

在安装程序项目 - .wixproj 中,我放置了 2 个将执行不同命令的目标:

  <Target Name="ConfuserExScript" AfterTargets="CopyReferencedProjects">
    <Exec Command="Powershell.exe -executionpolicy remotesigned -File &quot;$(SolutionDir)Installers\Scripts\Build\PostBuild_RunConfuserEx.ps1&quot; &quot;$(SolutionDir)\&quot;" />
  </Target>

  <Target Condition=" '$(ConfigurationName)' == 'ReleaseDC' " Name="Obfuscator" AfterTargets="ConfuserExScript">
    <Exec Command="$(SolutionDir)Installers\ConfuserEx\Confuser.CLI.exe $(ProjectDir)ConfuserOutput.crproj" />
  </Target>

第一个是收集 DLL 并为 crproj 创建 ConfuserEx 文件,第二个是运行 Confuser.CLI.exe 并混淆代码。 重要的是我使用了 afterTargets,所以第二行在第一行完成后执行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...