2013-01-18 55 views
2

我想創建一個MSI,將兩個OCX文件放在Program Files(x86)文件夾中,並註冊兩個OCX文件。如何調試未成功註冊一個OCX的WIX安裝?

兩個OCX文件中的第一個(實際上在運行時使用第二個OCX)已成功註冊。第二個OCX沒有被成功註冊。我知道這一點,因爲如果我在沒有成功註冊的OCX上運行regsvr32,它會在它用於的應用程序中工作。

使用收集工具(heat.exe)生成兩個OCX文件的註冊信息。我在兩個OCX上都使用了散熱工具,所以我不明白爲什麼OCX註冊只適用於其中的一種,而不是兩種。

我該如何去調試呢?

+0

根據作者的要求清理代碼;無論如何,這裏並不是特別必要。 – Shog9

回答

1

實際上並不奇怪。 COM提取/收集是一件棘手的事情。給定足夠的COM組件,你會發現它經常不好。

您已經解決了一半問題。 regsvr32修復這個問題的事實告訴你,你已經接近並且不會錯過其他的依賴關係,而不是其他的依賴關係。

你想要做的是在你安裝的狀態下獲得一臺乾淨的機器(虛擬機非常適合這個東西),但只有一個被註冊。在運行regsvr32之前和之後,使用可以掃描並捕獲註冊表的工具(InstallWatch是一款體面的工具)。然後比較快照以查看更改的內容。

你必須從機器上的其他進程中濾除一些噪音,但有一點經驗,它應該是顯而易見的改變。將它工作到你的wxs源代碼中,重建並重新測試(再次虛擬機是很棒的)。

+0

哇謝謝!我將不得不安裝另一個虛擬機並對其進行測試。非常感謝克里斯託弗! –