我使用Inno Setup創建我的設置。所有的工作都很好,但是我遇到了這個問題:如何註冊.NET DLL以使其可以被COM +訪問。因爲我們都知道.NET爲此帶來RegSvcs.exe
,所以我查看了Inno安裝文檔,只發現了用於Assembly註冊的gacinstall,但沒有用於COM +交互。 所以我在[Run]
部分Com + Intero註冊Inno Setup
; register .Net components for com+
Filename: {win}\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe; Parameters: "{app}\bin\Common.dll"; Description: Component registration; WorkingDir: {app}\bin; StatusMsg: Component registration...; Flags: waituntilterminated
但是通過測試此行只是跳過設置添加此。 DLL在[Files]
部分之前被複制到目標並且可用。 設置後,我可以手動運行RegSvcs.exe從命令行以及沒有問題。
只是一個提示(不是解決您的問題),您可以在文件路徑中使用'{dotnet40}'常量來獲取.NET 4.0路徑,具體取決於安裝程序運行的模式(32位或64位),或者使用'{dotnet4032}'獲得32位.NET 4.0路徑或'{dotnet4064}'用於64位。它消除了你的路徑硬編碼。 – TLama 2012-08-14 08:50:54
但是你所描述的很奇怪,從第一次看它看不出什麼錯誤(也許我會刪除'WorkingDir',但它應該不是我想的問題)。無論如何,你使用的Windows版本是Vista嗎?如果是這樣,你運行你的設置提升爲管理員? – TLama 2012-08-14 09:19:18
目標平臺通常是贏得2008 R2系統。安裝程序始終以管理員權限運行。 – YvesR 2012-08-14 09:24:19