wix heat不会生成注册表输出

时间:2014-04-14 20:27:18

标签: wix registry heat

我是WIX的新手(因为VS2013不再支持我的设置项目而感动)。

我正在使用:Windows Installer XML Toolset Toolset Harvester版本3.8.1128.0

我想从.reg文件生成一个WIX片段但是什么时候执行:

heat reg MyApp.reg -v -o MyApp.wxs

MyApp.wxs的内容很简单:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" />

注册表文件MyApp.reg的内容是:

REGEDIT
; This .REG file may be used by your SETUP program.
;   If a SETUP program is not available, the entries below will be
;   registered in your InitInstance automatically with a call to
;   CWinApp::RegisterShellFileTypes and COleObjectFactory::UpdateRegistryAll.

HKEY_CLASSES_ROOT\.ad = MyApp.Document
HKEY_CLASSES_ROOT\MyApp.Document\shell\open\command = MYAPP.EXE %1
HKEY_CLASSES_ROOT\MyApp.Document\shell\open\ddeexec = [open("%1")]
HKEY_CLASSES_ROOT\MyApp.Document\shell\open\ddeexec\application = AXSYS
    ; note: the application is optional
    ;  (it defaults to the app name in "command")

HKEY_CLASSES_ROOT\MyApp.Document = MyApp Document
HKEY_CLASSES_ROOT\MyApp.Document\CLSID = {405890C4-E3AA-11D2-AE41-0040053793DD}

HKEY_CLASSES_ROOT\CLSID\{405890C4-E3AA-11D2-AE41-0040053793DD} = MyApp Document
HKEY_CLASSES_ROOT\CLSID\{405890C4-E3AA-11D2-AE41-0040053793DD}\ProgId = MyApp.Document
HKEY_CLASSES_ROOT\CLSID\{405890C4-E3AA-11D2-AE41-0040053793DD}\LocalServer32 = MYAPP.EXE

谢谢。

1 个答案:

答案 0 :(得分:0)

我从未见过像您帖子中那样的注册表文件。使用regedit中的默认导出格式,heat可以完美运行。例如。这是从regedit出口:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Event Viewer]
"MicrosoftRedirectionProgram"=hex(2):00,00
"MicrosoftRedirectionProgramCommandLineParameters"=""
"MicrosoftRedirectionURL"="http://go.microsoft.com/fwlink/events.asp"

这里有一个使用Win9x / WinNT格式:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Event Viewer]
"MicrosoftRedirectionProgram"=hex(2):00
"MicrosoftRedirectionProgramCommandLineParameters"=""
"MicrosoftRedirectionURL"="http://go.microsoft.com/fwlink/events.asp"

最简单的解决方案可能是在已经存在密钥的系统上运行regedit,然后导出这些密钥(通过右键单击注册表配置单元并从上下文菜单中选择Export)然后使用生成的.reg文件作为热运行的源。