【问题标题】:How to run RegAsm /codebase with an InstallScript project?如何使用 InstallScript 项目运行 RegAsm /codebase?
【发布时间】:2020-01-27 16:31:37
【问题描述】:

我在 InstallShield 论坛上尝试过这个问题,但没有得到任何喜爱。我的公司有一个 InstallScript 项目(非 MSI),我们需要在我们的一个 DLL 上运行 RegAsm /codebase。我在网上找到了一些这样做的教程,但它们似乎不适用于我们的项目类型。也就是说,我需要的选项根本不存在于 UI 中。这包括此处的建议 (https://www.iwasdot.com/installshield-execute-a-batch-script/) 以及涉及自定义操作的任何内容(正如我从文档中解释的那样,自定义操作不适用于 InstallScript 项目)。如何使用 InstallScript 完成此任务?我正在使用 InstallShield 2013,但我对此知之甚少。

【问题讨论】:

  • 有什么理由不切换到 Windows Installer 项目类型?

标签: com installshield regasm installscript


【解决方案1】:

我已经有将近 20 年没有使用 InstallScript 项目了,但我想你会编写一个 InstallScript 函数来调用 LaunchAppAndWait 来调用 Regasm。

如果我没记错的话,InstallScript 项目类型有诸如 After File Copy 之类的事件,您可以使用这些事件将代码放入其中。

【讨论】:

    【解决方案2】:

    Christopher Painter 是正确的。我得出了同样的结论,并且能够让它发挥作用。如果它对将来的任何人有帮助,更具体地说,这是我所做的:

    我转到“安装设计器”选项卡的“行为和逻辑”文件夹并选择“安装脚本”。然后在右侧窗格中,我选择了与我的 DLL 关联的功能,然后选择了“已安装”事件处理程序。以下脚本为 COM 互操作注册了我的 DLL:

    LaunchApplication("C:/Windows/Microsoft.NET/Framework/v4.0.30319/RegAsm.exe", "../path/to/my.dll /codebase", "", SW_HIDE, 0, LAAW_OPTION_NOWAIT);

    然后我为“Uninstalled”事件处理程序做了类似的事情:

    LaunchApplication("C:/Windows/Microsoft.NET/Framework/v4.0.30319/RegAsm.exe", "/unregister ../path/to/my.dll", "", SW_HIDE, 0, LAAW_OPTION_NOWAIT);

    【讨论】:

      猜你喜欢
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多