.net 从x64系统上的msi启动时,Regasm.exe安装失败
我的安装有问题。安装程序运行命令行选项,将regasm.exe作为带有/codebase选项的.net com dll 当我从Setup.exe运行安装(由installshield构建)时,一切正常 当我从.msi运行安装时,regasm调用没有成功,没有注册任何内容,程序也没有运行 这个问题似乎只影响基于x64的系统,并且在x86系统上,这两种方法都有效 你知道问题出在哪里吗 编辑 问题似乎是,即使以管理员身份登录,msi也不会以管理员身份执行。我仍然会看到一个UAC对话框,但只是在向导进行到一半的时候。从setup.exe启动时,我会在向导出现之前获得UAC面板。如果我从运行.msi并且有一个管理命令提示符,那么我就不会得到UAC面板,一切都按照预期工作 所以我想一切都按预期进行,是吗?要使自定义安装操作正常工作,msi必须以管理权限运行?讨论了从安装程序上下文中运行具有管理员权限的可执行文件的需要。所讨论的可执行文件是不同的(.net 从x64系统上的msi启动时,Regasm.exe安装失败,.net,com,installation,regasm,.net,Com,Installation,Regasm,我的安装有问题。安装程序运行命令行选项,将regasm.exe作为带有/codebase选项的.net com dll 当我从Setup.exe运行安装(由installshield构建)时,一切正常 当我从.msi运行安装时,regasm调用没有成功,没有注册任何内容,程序也没有运行 这个问题似乎只影响基于x64的系统,并且在x86系统上,这两种方法都有效 你知道问题出在哪里吗 编辑 问题似乎是,即使以管理员身份登录,msi也不会以管理员身份执行。我仍然会看到一个UAC对话框,但只是在向导进行
appcmd.exe
,与您的案例中的regasm.exe
),但问题听起来类似
我认为与你相关的那篇文章是:
结果表明,默认情况下,自定义操作模拟启动安装的用户,而无需安装程序本身运行时的管理员提升。这可以通过将CustomAction的模拟属性设置为“否”来更改。这还需要添加Execute=“deferred”,从而使自定义操作在InstallFinalize之前而不是之后运行
我不熟悉InstallShield,但看看是否有办法标记运行regasm.exe
的自定义操作。您希望寻找可以设置的选项,这些选项的措辞类似于以下选项之一(这些都是表达同一事物的不同方式):
- 设置
位msidbCustomActionTypeNoImpersonate
- 为“系统上下文中的延迟执行”设置自定义操作
- 为“无模拟的延迟执行”设置自定义操作