2009-09-04 20 views
5

के लिए HEAT का उपयोग करना मैं WIX 3 का उपयोग कर रहा हूं। मैंने VB6 dll के लिए wxs फ़ाइल बनाने के लिए गर्मी का उपयोग किया है। एमएसआई किसी भी त्रुटि के बिना बनाता है, और स्थापना भी सफल है।WIX 3: विजुअल बेसिक 6 COM Dlls

सभी ठीक लगते हैं, और मैं घटक को वीबी क्लाइंट से सफलतापूर्वक बुला सकता हूं।

हालांकि, अगर मैं एएसपी पेज से घटक का आह्वान करता हूं, तो मुझे 0x800401f3 मिलता है।

यदि इंस्टॉलर की बजाय, मैं स्वयं पंजीकरण (regsvr32) का उपयोग करता हूं, दोनों ठीक काम करते हैं।

मैं यह पता लगाने की क्या स्वयं पंजीकरण (regsvr32) और संस्थापक के बीच का अंतर था एक रजिस्ट्री अंतर किया था, और मैं निम्नलिखित

  1. HKCR मैच में सभी प्रविष्टियों को देखें - सब कुछ ठीक यहाँ
  2. regsvr32 एचकेएलएम में प्रविष्टियां जोड़ती है, जबकि इंस्टॉलर एचकेएलएम

पर विचार नहीं करता है, तो मुझे आश्चर्य है कि यह समस्या है या मैं पूरी तरह से गलत ट्रैक पर हूं।

एमएसडीएन (http://msdn.microsoft.com/en-us/library/ms694355(VS.85).aspx) का उल्लेख है कि एचकेएलएम में रजिस्ट्री प्रविष्टियों की आवश्यकता है, यह सोचकर कि मैं यहां क्या खो रहा हूं।

गर्मी द्वारा बनाई गई फ़ाइल निम्नलिखित है।

<?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" विकल्प का उपयोग करते हुए और साथ ही एएसपी ग्राहक के काम में आता है। मैंने अन्य पदों से पढ़ा है कि इसका उपयोग नहीं किया जाना है। क्या कोई मुझे बता सकता है कि क्या किया जाना है?

उत्तर

7

इंस्टॉलर को एचकेएलएम के तहत प्रविष्टियां डालने के लिए, इंस्टॉलेशन को माचिन के रूप में चिह्नित किया जाना चाहिए, डिफ़ॉल्ट रूप से नीचे दिया गया है, जैसा कि नीचे किया गया है।

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

यह हो जाने के बाद, प्रविष्टियां HKCR और HKLM में आती हैं।

मुझे आशा है कि किसी को यह उपयोगी लगेगा, मुझे 6 घंटे का अच्छा लगा ..

+0

+1 बस मुझे जो चाहिए था। – bluekeys

संबंधित मुद्दे