我在InstallShield论坛上尝试了这个问题,但没有得到任何人的喜爱。我的公司有一个InstallScript项目(非微星),我们需要在我们的一个DLL上运行RegAsm /codebase。我在网上找到了一些这样做的教程,但它们似乎不适用于我们的项目类型。也就是说,UI中根本不存在我需要的选项。这包括这里的建议(https://www.iwasdot.com/installshield-execute-a-batch-script/)以及涉及自定义操作的任何内容(正如我从文档中解释的那样,自定义操作不适用于InstallScript项目)。我如何使用InstallScript来实现这一点?我正在使用InstallShield 2013,我对它知之甚少。
发布于 2020-01-30 03:49:55
我已经有近20年没有使用过InstallScript项目了,但是我想您应该会编写一个InstallScript函数来调用LaunchAppAndWait来调用Regasm。
如果我没记错的话,InstallScript项目类型有类似文件复制后的事件,您可以使用这些事件将代码放入其中。
发布于 2020-01-31 02:07:10
克里斯托弗·佩因特是对的。我得出了同样的结论,并且能够让它工作。如果它对未来的任何人有帮助,下面是我所做的更具体的事情:
我转到"Installation Designer“选项卡的"Behavior and Logic”文件夹,选择了"InstallScript“。然后,在右侧窗格中,我选择了与我的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);
然后,我对“已卸载”事件处理程序执行了类似的操作:
LaunchApplication("C:/Windows/Microsoft.NET/Framework/v4.0.30319/RegAsm.exe", "/unregister ../path/to/my.dll", "", SW_HIDE, 0, LAAW_OPTION_NOWAIT);
https://stackoverflow.com/questions/59935230
复制相似问题