如果您需要單獨的卸載程序,則必須編寫單獨的安裝程序。一般的規則是你必須根據應用程序編寫單獨的安裝程序。
這就是說,你可以有任意數量的共享文件,這可能是DLL的,可執行文件等,是不同的應用程序之間共享。
Windows具有良好定義的程序來跟蹤共享文件,並帶有引用計數。引用計數由安裝程序遞增並由卸載程序遞減。只有在卸載期間引用計數達到0時,纔會從系統中刪除這些文件。
您使用sharedfile
標誌來指示安裝程序文件被共享。該中是指mylib.dll文件在下面的例子中共享:
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "MyLib.dll"; DestDir: "{sys}"; Flags: sharedfile
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
從文檔(重點煤礦):
sharedfile
指定該文件的多個應用程序之間共享, ,只有在卸載時才能刪除,如果沒有其他應用程序正在使用它。大多數安裝到Windows系統目錄的文件應使用此標誌,包括.OCX,.BPL和.DPL文件。
Windows的標準共享文件引用計數機制(位於註冊表下HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SharedDLLs)用於跟蹤有多少應用程序依賴於該文件。每次安裝文件時,文件的引用計數都會增加。 (無論安裝程序是否實際替換磁盤上的文件,都會發生這種情況。)卸載使用該文件的應用程序時,引用計數會減少。如果計數達到零,文件將被刪除(通過用戶確認,除非還指定了標記)。
請提出問題,你問的更清楚 – 2013-02-20 03:55:01
對不起,英文不好,我詳細的問題; – Webber 2013-02-20 09:57:49
您提到每個可執行文件的卸載程序。你能確認這是兩個獨立的軟件包被安裝到同一個位置嗎?如果是這樣,你只需要共享文件上的'sharedfile'標誌(在兩個設置中),導致Inno只有在它們被加密後纔會刪除它們。 – Deanna 2013-02-20 10:20:48