Tôi đang cố gắng đăng ký một DLL bằng cách sử dụng WiX. Bây giờ tôi biết và hiểu rằng tôi nên sử dụng heat
và làm cho nó để kéo thông tin đăng ký cho tôi, nhưng nhiệt dường như thất bại với thông báo lỗi sau: heat.exe : warning HEAT5150 : Could not harvest data from a file that was expected to be a SelfReg DLL: C:\Users\seb\Desktop\Development\addin.dll. If this file does not support SelfReg you can ignore this warning. Otherwise, this error detail may be helpful to diagnose the failure: Unable to load file: C:\Users\seb\Desktop\Development\addin.dll, error: 193
Không thể đăng ký DLL bằng cách sử dụng WiX
Tôi đã nhìn xung quanh và tìm thấy bài đăng này giải thích một chút chi tiết hơn về registering DLLs nhưng tôi muốn tránh lộ trình tự đăng ký nếu có thể. Tôi cũng thấy đề cập đến việc đăng ký DLL một cách thủ công dưới đây, nhưng tôi không quá thạo với các đối tượng đăng ký hoặc COM để biết nơi tôi thậm chí có thể nhận được CLSID, ProgId và bất kỳ thông tin nào khác đã được đề cập.
Nếu bất cứ ai có thể chỉ cho tôi đúng hướng hoặc giải thích cho tôi những gì tôi cần làm để chạy DLL thông qua heat
nó sẽ được đánh giá rất nhiều.
Đó là một tệp DLL được tạo bằng ATL 6.0. Nếu tôi gọi regserv32 trên đó, mọi thứ đều tốt và hệ thống nhận ra nó, nhưng cho đến bây giờ nó vẫn luôn được tải như một SelfReg. – Seb
Loại vấn đề này thực sự phức tạp để giải quyết. Nếu bạn có thể chia sẻ các DLL tôi có thể cố gắng giải nén nó cho bạn. Bạn cũng có thể sử dụng công cụ chụp nhanh đăng ký trên máy sạch để ghi lại regsvr32 và sau đó tự tác giả vào wx. Hoặc sử dụng đánh giá InstallShield để trích xuất tối ưu COM và WiX để dịch ngược lại thành wx. Rất nhiều thủ thuật nhưng đòi hỏi kinh nghiệm. –
Không thể thực sự chia sẻ DLL do nó là tài sản của công ty, nhưng tôi đã cố gắng sử dụng RegSpy và nó đã bị đóng băng trong khoảng 8 giờ. Hy vọng rằng nó chỉ là cố gắng để kéo dữ liệu ra. – Seb