Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 Installshield MSI无法注册dll_Visual Studio 2010_Dll_Windows Installer_Installshield - Fatal编程技术网

Visual studio 2010 Installshield MSI无法注册dll

Visual studio 2010 Installshield MSI无法注册dll,visual-studio-2010,dll,windows-installer,installshield,Visual Studio 2010,Dll,Windows Installer,Installshield,我正在为我开发的解决方案构建一个安装程序。我的一个项目的输出是一个需要注册的dll。我正在用VisualStudio生成一个MSI,然后用InstallShield修改它。在visual studio中,我添加了一个需要管理员权限才能执行的自定义操作,并将dll的register属性设置为vsdrpCOMSelfReg。当我在没有管理员权限的情况下运行msi时,会显示一条消息,说明某个操作需要管理员角色,当我确认并更改用户帐户时,安装会顺利完成,但dll未注册。 我错过什么了吗?如何正确注册dl

我正在为我开发的解决方案构建一个安装程序。我的一个项目的输出是一个需要注册的dll。我正在用VisualStudio生成一个MSI,然后用InstallShield修改它。在visual studio中,我添加了一个需要管理员权限才能执行的自定义操作,并将dll的register属性设置为
vsdrpCOMSelfReg
。当我在没有管理员权限的情况下运行msi时,会显示一条消息,说明某个操作需要管理员角色,当我确认并更改用户帐户时,安装会顺利完成,但dll未注册。 我错过什么了吗?如何正确注册dll?
非常感谢您的帮助。

自我注册不是Windows Installer的最佳做法。正确的方法是将COM元数据编写到MSI中,并允许MSI复制文件并应用注册表数据。在InstallShield中,可以通过为DLL创建组件、将DLL标记为密钥文件,然后右键单击该文件并选择Extract COM来实现此目的。然后InstallShield将模拟注册,并将该信息编入正确的表中。在干净的机器上构建和测试。不需要自定义操作,安装程序将正确支持回滚方案。

自注册不是Windows安装程序的最佳做法。正确的方法是将COM元数据编写到MSI中,并允许MSI复制文件并应用注册表数据。在InstallShield中,可以通过为DLL创建组件、将DLL标记为密钥文件,然后右键单击该文件并选择Extract COM来实现此目的。然后InstallShield将模拟注册,并将该信息编入正确的表中。在干净的机器上构建和测试。不需要自定义操作,安装程序将正确支持回滚方案。

即使是Visual Studio,也没有理由创建自定义操作来执行此操作。将文件标记为vsdrfCOM,类注册将在构建时提取到MSI的类表中。即使坚持自注册,也可以将其标记为vsdrfComSelfReg,并从MSI文件的SelfReg表中注册。完全没有自定义操作。无论如何,正如Christopher所说,由于许多原因,在安装时运行自注册是不好的做法,其中之一就是缺少依赖项

即使是Visual Studio,也没有理由创建自定义操作来执行此操作。将文件标记为vsdrfCOM,类注册将在构建时提取到MSI的类表中。即使坚持自注册,也可以将其标记为vsdrfComSelfReg,并从MSI文件的SelfReg表中注册。完全没有自定义操作。无论如何,正如Christopher所说,由于许多原因,在安装时运行自注册是不好的做法,其中之一就是缺少依赖项

为什么您要构建Visual Studio MSI,然后说InstallShield失败了?
我正在使用Visual Studio生成MSI,然后使用InstallShield进行修改。
这就是我说的为什么您要构建Visual Studio MSI,然后说InstallShield失败了?
我正在使用Visual Studio生成MSI,然后使用InstallShield进行修改InstallShield。
这就是我说过的