Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Vb6 WIX 3:对Visual Basic 6 COM DLL使用HEAT_Vb6_Wix_Wix3 - Fatal编程技术网

Vb6 WIX 3:对Visual Basic 6 COM DLL使用HEAT

Vb6 WIX 3:对Visual Basic 6 COM DLL使用HEAT,vb6,wix,wix3,Vb6,Wix,Wix3,我正在使用WIX3。我使用heat为VB6 dll创建了一个wxs文件。msi创建时没有任何错误,安装也成功 一切似乎都很好,我可以从VB客户端成功调用该组件 但是,如果从ASP页面调用该组件,则会得到0x800401f3 如果我使用自注册(regsvr32)而不是安装程序,则两者都可以正常工作 我做了一个注册表差异来找出自注册(regsvr32)和安装程序之间的差异,我看到了以下内容 香港文化中心的所有参赛作品都很好 regsvr32在HKLM中添加条目,而安装程序不接触HKLM 我想知道这是

我正在使用WIX3。我使用heat为VB6 dll创建了一个wxs文件。msi创建时没有任何错误,安装也成功

一切似乎都很好,我可以从VB客户端成功调用该组件

但是,如果从ASP页面调用该组件,则会得到0x800401f3

如果我使用自注册(regsvr32)而不是安装程序,则两者都可以正常工作

我做了一个注册表差异来找出自注册(regsvr32)和安装程序之间的差异,我看到了以下内容

  • 香港文化中心的所有参赛作品都很好
  • regsvr32在HKLM中添加条目,而安装程序不接触HKLM
  • 我想知道这是问题所在,还是我完全走错了方向

    MSDN()提到HKLM中需要注册表项,想知道我在这里遗漏了什么

    以下是由heat创建的文件

    <?xml version="1.0" encoding="utf-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
        <Fragment>
            <DirectoryRef Id="TARGETDIR">
                <Directory Id="dirAD70B10292EAB7CAC7171859FBB23AA9" Name="vbdll" />
            </DirectoryRef>
        </Fragment>
        <Fragment>
            <DirectoryRef Id="dirAD70B10292EAB7CAC7171859FBB23AA9">
                <Component Id="cmp9D818C62A6239E8B51E971A0048D0C05" Guid="PUT-GUID-HERE">
                    <File Id="filDD6F51EC5018EF4A9A312FFA6AC4257D" KeyPath="yes" Source="SourceDir\vbdll\act.dll">
                        <TypeLib Id="{80D8DA04-72C9-4D36-B269-57D989187ACF}" Description="act" HelpDirectory="dirAD70B10292EAB7CAC7171859FBB23AA9" Language="0" MajorVersion="1" MinorVersion="0">
                            <Class Id="{31BD65B6-9479-40EB-83C0-E717CD4793DD}" Context="InprocServer32" Description="act.def" ThreadingModel="apartment" Version="1.0" Programmable="yes">
                                <ProgId Id="act.def" Description="act.def" />
                            </Class>
                            <Interface Id="{C6D46026-CD7E-4AB0-B3B6-810FBF435BEF}" Name="def" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
                        </TypeLib>
                    </File>
                    <RegistryValue Root="HKCR" Key="CLSID\{31BD65B6-9479-40EB-83C0-E717CD4793DD}\Implemented Categories\{40FC6ED5-2438-11CF-A3DB-080036F12502}" Value="" Type="string" Action="write" />
                </Component>
            </DirectoryRef>
        </Fragment>
    </Wix>
    
    
    


    更新:对文件使用“SelfReg”选项也可以使ASP客户端工作。我从其他帖子上读到,这是不能使用的。有人能告诉我该怎么做吗?

    要让安装程序将条目放在HKLM下,安装必须标记为perMachine,默认值似乎是perUser,如下所示

    <Package InstallScope="perMachine" InstallerVersion="200" Languages="1033" Compressed="yes" SummaryCodepage="1252" />
    
    
    
    完成后,将以HKCR和HKLM的形式提交参赛作品

    我希望有人觉得这有用,花了我6个小时