我想使用 regasm.exe 将 .net dll 注册为 COM 对象。我遇到了导致 intstaller 无法工作的问题。我相信这是因为当我想运行命令时,我想注册的文件还没有进入安装目录。但是错误日志并没有说明安装错误让我知道。任何想法,如何确保在运行自定义命令之前将文件移动到“程序文件”?
这是我正在使用的:
<InstallExecuteSequence>
<Custom Action='comReg' After='InstallFinalize'>NOT REMOVE</Custom>
<Custom Action='comUnreg' Before='RemoveFiles'>REMOVE</Custom>
</InstallExecuteSequence>
<CustomAction Id='comReg' Directory='INSTALLDIR'
ExeCommand='"[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\regasm.exe" "[INSTALLDIR]my.dll"' Return='check' />
<CustomAction Id='comUnreg' Directory='INSTALLDIR' ExeCommand='"[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\regasm.exe" /u "[INSTALLDIR]my.dll"' Return='check' />
最佳答案
你为什么要这样做?您将失去在适当的 MSI 表中捕获该注册将提供的所有回滚。另外,通过这种安排,您将遇到海拔问题。
我 强烈建议 使用 heat.exe 来捕获程序集的重新加气,并改用声明式方法。
关于com - 如何使用 WiX 将 dll 注册到 COM 安装后,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1394792/