WIX 3을 사용하고 있습니다. 열을 사용하여 VB6 dll에 wxs 파일을 만들었습니다. msi는 오류없이 생성되며 설치도 성공적입니다.WIX 3 : Visual Basic 6 COM Dll에 HEAT 사용
모두 괜찮아 보이고 VB 클라이언트에서 구성 요소를 성공적으로 호출 할 수 있습니다.
그러나 ASP 페이지에서 구성 요소를 호출하면 0x800401f3이 표시됩니다.
설치 관리자 대신 자체 등록 (regsvr32)을 사용하면 정상적으로 작동합니다.
I가 자체 등록 (에 regsvr32)과 설치의 차이 무엇인지 알아 내기 위해 레지스트리 차이를했다, 그리고 나는
- HKCR 일치하는 모든 항목은 다음을 참조 - 잘 여기
- 에 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 클라이언트 작업을합니다. 나는 이것을 사용하지 않을 것이라는 다른 글을 읽었다. 누군가 나에게해야 할 일을 말해 줄 수 있습니까?
+1 그냥 필요한 것. – bluekeys