我有两个虚拟机,想在上面安装我的软件(Wix)。其中一个是Windows XP SP2,另一个是Windows XP SP1。它们都没有使用域名,并且都具有具有管理员权限的本地用户管理员。
在带有SP3的机器上运行RegAsm.exe以注册MyApp.dll会将我的ProgId放入以下文件夹中:
HKEY_CLASSES_ROOT\MyAppProgId HKEY_LOCAL_MACHINE\Software\Classes\MyAppProgId
而在SP2机器上运行时,则会将其放入以下文件夹中:
HKEY_CLASSES_ROOT\MyAppProgId HKEY_CURRENT_USER\Software\Classes\MyAppProgId
我发现这一点是在尝试从服务加载MyApp.dll时发现的。从RegAsm.exe生成的注册表文件以及Heat.exe似乎都在更新HKEY_CLASSES_ROOT。
有人知道是什么原因吗?
编辑:最终通过直接写入HKEY_LOCAL_MACHINE而不是HKCR来解决了这个问题-这涉及手动编辑生成的.reg文件或.wxs文件。
在带有SP3的机器上运行RegAsm.exe以注册MyApp.dll会将我的ProgId放入以下文件夹中:
HKEY_CLASSES_ROOT\MyAppProgId HKEY_LOCAL_MACHINE\Software\Classes\MyAppProgId
而在SP2机器上运行时,则会将其放入以下文件夹中:
HKEY_CLASSES_ROOT\MyAppProgId HKEY_CURRENT_USER\Software\Classes\MyAppProgId
我发现这一点是在尝试从服务加载MyApp.dll时发现的。从RegAsm.exe生成的注册表文件以及Heat.exe似乎都在更新HKEY_CLASSES_ROOT。
有人知道是什么原因吗?
编辑:最终通过直接写入HKEY_LOCAL_MACHINE而不是HKCR来解决了这个问题-这涉及手动编辑生成的.reg文件或.wxs文件。