2013-03-25 38 views
5

桌面上已經有一個相同名稱的快捷方式,但它由安裝setupfactory安裝(我想用inno替換它)。現在當我使用innosetup創建的安裝程序進行安裝時,它會創建一個新的圖標而不是替換當前的圖標。我添加了[installDelete]部分,但不起作用。我剛剛檢查了快捷方式的屬性。我發現的差異是一個快捷方式擁有所有者作爲管理員組,另一個是我的用戶。但都是由同一用戶安裝的。那會是原因嗎?有沒有解決這個問題的方法?或者我可以檢查是否存在同名的快捷方式?謝謝從桌面替換相同的快捷方式innosetup

兩者都指向相同的路徑相同的exe。 我安裝在Windows 7中

+1

超過所有權將是不同的路徑。檢查這些快捷方式的路徑,並將其納入您的問題中。 – TLama 2013-03-25 14:43:54

+0

謝謝..我編輯了這個問題 – sjd 2013-03-25 14:45:58

+0

也許你在'Users \ YOUR_PROFILE \ Desktop'中有一個快捷方式,它將是'{userdesktop}',另一個在'Users \ Public \ Desktop'中將是'{commondesktop}' – RobeN 2013-03-25 14:48:21

回答

5

在這種情況下,您應該檢查兩個快捷方式的位置。

可能其中之一是在公共桌面文件夾(對於所有用戶)中創建的 - {commondesktop},第二個是針對當前用戶桌面文件夾 - {userdesktop}預定義的。

A.

[Icons] 
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; 
WorkingDir: "{app}"; Tasks: desktopicon 

B.

[Icons] 
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; 
WorkingDir: "{app}"; Tasks: desktopicon 
+0

是的,這是問題所在。現在我使它成爲了userdesktop。再次感謝。 – sjd 2013-03-25 15:15:09

+0

@ user1616785,你也可以['upvote the answers'](http://meta.stackexchange.com/a/173400/179541),就像我在這篇文章前幾分鐘所做的那樣;-) – TLama 2013-03-25 16:02:11

+0

@ user1616785請注意,您安裝的「{userdesktop}」可能與運行安裝程序的用戶的桌面不一樣。如果必須從LUA升級到管理員,那麼用戶將會不同。 – Deanna 2013-03-26 09:56:50

0

當你安裝程序之間切換構架通常最好安裝新的之前先卸載舊版本(通過它的卸載程序)。 (您可以自動執行此操作。)

如果您不這樣做,那麼很可能用戶最終會在其驅動器中出現雜散的卸載程序文件,並且會有多個添加/刪除程序條目;這兩個都很醜陋。

(這是一次性的東西 - 有沒有必要從一個創新科技或應用改變版本時到另一個,只能從非創新科技轉變爲創新科技或反轉時自動卸載舊版本)

+0

通常我們會這樣做。但我們也使用升級設置,其中不包括卸載程序。所以第一個卸載程序可以正常工作,因爲升級安裝程序只安裝與最新版本相同的文件。感謝您的提示 – sjd 2013-03-27 04:31:19

+0

直到一些後來的版本,你添加了一個額外的文件。(通常,當您使用Inno進行更新安裝時,您*希望它爲此創建卸載條目 - Inno足夠聰明,可以默認添加到現有的卸載日誌和條目中,但當然這隻適用於如果最初的安裝是使用Inno完成的話)。就個人而言,我仍然建議檢測這種情況並要求用戶使用完整的安裝程序。我不確定SetupFactory,但我知道如果其他安裝程序替換它們的文件,基於MSI的安裝程序會變得脾氣暴躁。 – Miral 2013-03-27 19:45:52