我有一個程序產品,它額外安裝外殼擴展到Windows資源管理器。它使用C#製作並使用.NET Framework v4.0。外殼擴展是通過使用regasm.exe在安裝過程中由Inno Setup安裝的。一切正常,直到我想安裝應用程序的更新版本。問題是我無法更新外殼擴展DLL,因爲它加載到資源管理器的內存。在安裝Inno Setup的顯示我下面的消息更新與Inno安裝程序的Windows資源管理器外殼擴展
它說,安裝需要終止Windows資源管理器,因爲它使用應該由安裝程序更新的文件。 它終止瀏覽器進程,但不會再啓動他。這是我的第一個問題。
其實我不想強制用戶關機瀏覽器。但我不知道如何從資源管理器的內存中卸載託管shell。如果通過regasm.exe DLL卸載它仍然保留在內存中。事實上,我甚至無法找到發生這種檢查的地方,因爲我收到了已經安裝的源碼。
Inno Setup的文件在用(IssProc.dll)加載項沒有幫助,因爲儘快通過此加載項終止Windows資源管理器,資源管理器立即重新啓動。
我該如何解決這個問題?我怎樣才能更好的用戶體驗更新外殼擴展DLL? 也許有人可以給我一個提示,檢查正在使用的文件的代碼放在哪裏?
O和BTW我正在使用Windows 7 x64。
隨着*也許有人可以給我一個提示,其中檢查使用中的文件的代碼放在*你的意思是在InnoSetup源代碼?或者您打算展示如何使用該解決方案的示例腳本? – TLama 2012-07-21 00:14:58
我的意思是Inno Setup源代碼。我無法找到類似於上面指定的文件驗證的任何內容。我們只在Inno Setup中檢查.NET v4。可能這是由Inno Setup引擎進行的檢查? – 2012-07-21 08:55:28
我看到由安裝嚮導進行的檢查 – 2012-07-21 09:09:02