修改Windows Installer COM注册

时间:2012-02-02 18:36:03

标签: visual-studio windows-installer

我在Visual Studio中的安装项目部署了一个设置为向COM注册的DLL。安装程序负责必要的注册表设置,但是有一个我想要更改的密钥:我的一个类上的InprocServer32密钥。它通常包含'mscoree.dll',但我需要它包含'[SystemFolder] mscoree.dll'。我尝试了几种解决方法。

我尝试的第一件事是创建一个MSI转换,其中添加了一个注册表表项并将其作为构建后操作应用。这通常会破坏,因为我的组件键在构建过程中不一致。

然后我尝试在注册表窗口中使用VS创建一个注册表项。这不起作用,因为COM注册覆盖了我的注册表项,而不是相反。

然后我回到了MSI转换的想法,并在Component表中添加了一个条目,并使该组件的注册表键入口部分成为可能。这根本不起作用,我不知道为什么。

那么,有没有人知道如何修改Windows Installer中的COM注册?你能指出我哪里出错吗?

2 个答案:

答案 0 :(得分:0)

使用Visual Studio部署项目无法轻松完成此操作。微软将其从下一版Visual Studio中删除的众多缺点之一。

查看其他工具,例如InstallShield Professional和Windows Installer XML。

答案 1 :(得分:0)

我刚才意识到你说mscoree,对吗?这在技术上意味着它实际上不是COM(本机dll)而是COM Interop(托管dll)。您可以考虑在VDPROJ中关闭COM属性并使用Regasm /regfile:test.reg foo.dll生成一个regfile。然后,您可以在VDPROJ中创建您在注册表组件中看到的所有内容。

要意识到这个stil不会创建一个优雅的安装程序。

相关问题