2009-09-04 33 views
5

私はWIX 3を使用しています。私は熱を使ってVB6 dll用のwxsファイルを作成しました。 msiはエラーを発生させずに作成され、インストールも成功します。WIX 3:Visual Basic 6 COM DllでHEATを使用

すべてが問題なく、VBクライアントからコンポーネントを正常に呼び出すことができます。

ただし、ASPページからコンポーネントを呼び出すと、0x800401f3が取得されます。

インストーラの代わりに、私は自己登録(regsvr32)を使用していますが、どちらも正常に動作します。

私は自己登録(します。regsvr32)とインストーラの違いだったかを把握するのには、レジストリの違いをした

、と私は

  1. HKCRの試合ですべてのエントリ以下を参照してください - すべてここにも
  2. ます。regsvr32インストーラがHKLMに触れていない間にHKLMのエントリを追加します

私はこれが問題であるのか、間違っているのか疑問です。

MSDN(http://msdn.microsoft.com/en-us/library/ms694355(VS.85).aspx)には、HKLMにレジストリエントリが必要であることが記載されており、ここで何が不足しているのか不思議です。

以下は熱で作成されたファイルです。

<?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クライアントの作業を行います。私は他の投稿から、これを使わないことを読んでいます。誰かが何をすべきか教えてくれますか?

答えて

7

インストーラがHKLMの下にエントリを入れるようにするには、インストールをperMachineとマークする必要があります。デフォルトは以下のようにperUserと思われます。この一度

<Package InstallScope="perMachine" InstallerVersion="200" Languages="1033" Compressed="yes" SummaryCodepage="1252" /> 

はエントリはまた、HKLMをHKCRに来て、行われます。

は私が必要なものだけ...私によい6時間かかりました、誰かがこれは重宝

+0

+1を願っています。 – bluekeys

関連する問題