tôi sẽ khuyên bạn sử dụng công cụ Wix Heat.exe để thu hoạch tất cả các dữ liệu cần thiết để đăng ký thành phần com và sau đó tham khảo các đoạn trong .wxs bạn nộp như thế này:
<ComponentGroupRef Id="FooBar.dll" />
Hoặc bao gồm nó trong tệp .wxs của bạn như sau:
<?include FooBar.dll.wxi?>
Phương pháp này cho phép bạn kiểm soát hoàn toàn những gì xảy ra trong quá trình đăng ký/Không đăng ký thành phần Com.
Tuy nhiên, bạn vẫn có thể sử dụng Regsvr32 trong dự án Wix. Nhưng nó dựa vào việc thực hiện chính xác các chức năng RegisterServer/UnregisterServer trong thành phần COM
<CustomAction Id="RegisterFooBar"
Directory="INSTALLDIR"
ExeCommand='regsvr32.exe /s "[INSTALLDIR]FooBar.dll"'>
</CustomAction>
<CustomAction Id="UnregisterFooBar"
Directory="INSTALLDIR"
ExeCommand='regsvr32.exe /s /u "[INSTALLDIR]FooBar.dll"'>
</CustomAction>
Sau đó thêm hành động của bạn vào chuỗi cài đặt.
<InstallExecuteSequence>
<Custom Action="RegisterFooBar" After="InstallFinalize">NOT Installed</Custom>
<Custom Action="UnregisterFooBar" After="InstallFinalize">REMOVE="ALL"</Custom>
</InstallExecuteSequence>
Nguồn
2012-05-09 13:57:00
Mặc dù bạn đã yêu cầu cách đăng ký, bạn có thể cân nhắc không đăng ký thành phần COM. Các mô hình COM miễn phí đăng ký cho phép bạn sử dụng các dll COM mà không cần chạm vào registry. Xem: http://msdn.microsoft.com/en-us/library/ms973913.aspx – harper