Tôi đang sử dụng WIX 3. Tôi đã sử dụng nhiệt để tạo tệp wxs cho một dll VB6. Các msi tạo ra mà không có bất kỳ lỗi nào, và cài đặt cũng thành công.WIX 3: Sử dụng HEAT cho Visual Basic 6 COM Dlls
Tất cả có vẻ ổn, và tôi có thể gọi thành phần đó thành công từ ứng dụng khách VB.
Tuy nhiên, nếu tôi gọi thành phần từ trang ASP, tôi nhận được 0x800401f3.
Nếu thay vì trình cài đặt, tôi sử dụng tự đăng ký (regsvr32), cả hai đều hoạt động tốt.
tôi đã làm nên sự khác biệt registry để tìm ra sự khác biệt giữa đăng ký tự (regsvr32) và trình cài đặt là gì, và tôi thấy như sau
- Tất cả các mục trong trận đấu HKCR - tất cả cũng ở đây
- regsvr32 thêm mục vào HKLM, trong khi trình cài đặt không chạm HKLM
Tôi tự hỏi nếu đây là vấn đề hay tôi hoàn toàn theo dõi sai.
MSDN (http://msdn.microsoft.com/en-us/library/ms694355(VS.85).aspx) đề cập đến mục nhập sổ đăng ký được yêu cầu trong HKLM, tự hỏi tôi đang thiếu gì ở đây.
Sau đây là tệp được tạo bởi nhiệt.
<?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>
Cập nhật: Sử dụng "SelfReg" tùy chọn cho File làm cho công việc của khách hàng ASP là tốt. Tôi đọc từ các bài viết khác mà điều này không được sử dụng. Ai đó có thể cho tôi biết phải làm gì không?
+1 Chỉ cần những gì tôi cần. – bluekeys