2009-09-04 2 views
5

WIX 3을 사용하고 있습니다. 열을 사용하여 VB6 dll에 wxs 파일을 만들었습니다. msi는 오류없이 생성되며 설치도 성공적입니다.WIX 3 : Visual Basic 6 COM Dll에 HEAT 사용

모두 괜찮아 보이고 VB 클라이언트에서 구성 요소를 성공적으로 호출 할 수 있습니다.

그러나 ASP 페이지에서 구성 요소를 호출하면 0x800401f3이 표시됩니다.

설치 관리자 대신 자체 등록 (regsvr32)을 사용하면 정상적으로 작동합니다.

I가 자체 등록 (에 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" /> 

이 작업이 완료되면 항목이 HKCR 및 HKLM으로 제공됩니다.

누군가가 유용하다고 생각하고, 좋은 6 시간이 걸렸 으면 좋겠습니다.

+0

+1 그냥 필요한 것. – bluekeys