我使用Inno setup來構建應用程序安裝程序。Inno Setup:自動啓動應用程序時註冊表設置不更新
在安裝期間,我添加了一個註冊表項,該註冊表項提供了一個PATH,我將存儲可能被多個不同應用程序(或同一應用程序的多個版本)使用的公用文件(dll等)。
我使用本文中提出的方法:http://www.codeguru.com/cpp/w-p/dll/article.php/c99/Application-Specific-Paths-for-DLL-Loading.htm
我的問題是,安裝完成後,用戶可以自動運行的應用程序。在這種情況下,應用程序無法在PATH位置找到dll。如果我關閉應用程序並從資源管理器重新啓動它,它工作得很好。
我不想把文件放在標準的共享dll位置,它們不是所有的dll,我想要更好地控制我的應用程序正在使用的dll版本。此外,將文件放入應用程序安裝.exe目錄也不是一個選項。我也不想將PATH添加到系統環境路徑中(即使我這樣做,我懷疑我也可能會有同樣的問題!)
任何想法?
我認爲RTFM的情況! http://www.jrsoftware.org/ishelp/index.php?topic=registrysection 我在[run]部分使用了shellexec命令,它似乎解決了這個問題。 –
這是什麼協議?刪除問題?我認爲這可能對像我這樣的其他傻瓜有用。至少我認爲關於應用程序特定路徑的提示實際上非常有用,並且不會引用過於廣泛。 –
我發佈了錯誤的鏈接:http://www.jrsoftware.org/ishelp/index.php?topic=runsection 「shellexec」標誌運行程序「與用戶雙擊時的方式相同資源管理器中的文件「。換句話說,它啓動了一個新的過程,而不是安裝程序的一個子進程,因此它啓動了環境變化,我認爲它符合你在答案中的內容。 –