我明智地創建了一個安裝程序,用於使用進程內(DLL)COM-Server的Delphi應用程序。 我將Wise項目中的DLL配置爲「不要註冊」,但是在測試安裝之後它仍然被註冊?WISE - COM服務器註冊選項「不註冊」不起作用?
這是明智的「無證功能」還是我做錯了什麼?
有沒有人有解決方法或解決此問題?
P.S.我不想註冊該DLL的原因是,在目標PC上,COM服務器已經可以爲其他應用程序註冊具有特定設置(線程模型,路徑等)的我不想觸摸的目標PC。
我明智地創建了一個安裝程序,用於使用進程內(DLL)COM-Server的Delphi應用程序。 我將Wise項目中的DLL配置爲「不要註冊」,但是在測試安裝之後它仍然被註冊?WISE - COM服務器註冊選項「不註冊」不起作用?
這是明智的「無證功能」還是我做錯了什麼?
有沒有人有解決方法或解決此問題?
P.S.我不想註冊該DLL的原因是,在目標PC上,COM服務器已經可以爲其他應用程序註冊具有特定設置(線程模型,路徑等)的我不想觸摸的目標PC。
我發現了一個可能的解決方案或解決方法(可能是因爲我我以前不理解它,直到結束,但它的工作)。
COM DLL將目標電腦上註冊,即使是標有如果登記部署PC上的「不註冊」,以備不時之需。 解決方案:
完成這些步驟後,按預期方式工作 - DLL未在目標PC上註冊。
看來,這是因爲Windows安裝程序的廣告發生(這還是我沒有正確理解),但是從WISE的文檔,我發現:
「如何自注冊信息被捕獲 當您添加含COM自注冊信息給 安裝一個.DLL 或.OCX文件,它的註冊信息被掃描,並且 相應註冊表項添加到安裝。此註冊系統 比安裝時在 安裝時讓文件自注冊更爲強大,因爲它不依賴目標計算機上其他 文件的存在或.OCX或.DLL文件 對自身的依賴程度。 。-registration約定」
爲此作爲附加措施之前,上述步驟,我改變WISE廣告選項:
對於Advertising Setting:
選擇Do not scan advertising information
選項。
未選中選項Automatically add self-registration
。
這一切都寫得實際的解決方案,但由於@Christopher畫家響應我在「DLL地獄」術語被引入,特別是對COM DLL文件,以便爲長期的解決方案(透視)我會檢查註冊免費激活COM組件(link)。
我試圖避免這變成了「我應該使用線程的工具」。也就是說,WiX/IsWiX是免費的開源軟件,應該可以滿足您的需求。 (這很難說,因爲我不知道這個MSI會有什麼其他要求。)
這就是說,有沒有可能DLL已經被註冊了?您是否在快照虛擬機或其他可重現的環境中進行測試,您可以100%確定它不是?
如果是這樣,智慧腳本中是否還有其他任何可能導致註冊的操作。我並不知道明智的缺陷/功能,但如果有的話,您就是SOL,因爲該產品早已死亡,並且沒有可用的支持或更新。
最後一個註釋。你對這個DLL的評論可能已經存在並且被註冊了......這叫做DLL地獄。如果它不在那裏......現在你沒有註冊。無論您使用何種工具,在您希望獲得高質量安裝體驗之前,您都需要解決一些設計問題。
是的,如果你私下部署你的DLL並使用RegFree COM,你已經隔離了這個組件,並解除了DLL的地獄衝突。這將是一個更好的設計。 –