2010-03-24 261 views
4

我有一個.NET 3.5安裝包項目,它成功安裝我的應用程序。.NET安裝包安裝程序

安裝程序包部署了多個(大約70個)自定義文件以供在應用程序內使用。

我不時要求刪除其中一些文件,但是在重新啓動可執行文件時,它會再次自動運行部分安裝MSI,並重新安裝這些文件。

我現在可以實現我想要的結果的唯一方法是在啓動可執行文件後刪除文件。

我已經查看了安裝程序包中的文件(如Vital和PackageAs)的屬性,但似乎無法確定實現此目的所需的設置。

有沒有人知道需要什麼來達到這個目標?

由於大部分

回答

1

這惹惱了我也一樣,我不知道具體的設置你必須改變,以防止這一點,但我可以飛工作告訴你,我已經使用。我發現它只發生在我作爲安裝的一部分安裝的快捷方式中運行應用程序時。因此,如果您爲應用程序創建新的快捷方式並通過該快捷方式運行該快捷方式,那麼您刪除的文件將不會自動恢復。

+1

感謝Charles,這個解決方法可以工作, – Duncan 2010-03-24 06:48:09

0

Windows安裝程序支持三種類型的產品升級:主要升級,次要升級和小型更新。使用哪種升級提要在什麼情況下可以在這裏找到:http://helpnet.flexerasoftware.com/robo/projects/installshield12helplib/MajorMinorSmall.htm

你想要做的是設置你以這樣的方式安裝人員,以供您的軟件的新版本看到文件刪除爲升級到什麼之前的版本。如果您沒有做到這一點,然後刪除文件,程序安裝會認爲它已損壞,並嘗試恢復程序再次執行時刪除的文件。

InstallShield中(與我所熟悉安裝產品),還有一個產品GUID升級GUID。升級GUID 在您的不同版本的產品系列中始終保持相同的。產品GUID 隨每個新的MAJOR或MINOR版本而變化。通常,如果遵循此模式,然後在新版本中指定文件刪除,則安裝程序應將文件刪除解釋爲升級,並且在後續執行新安裝的版本時不應出現任何錯誤。

+0

感謝Robert,這個問題更多地涉及到啓動相同版本的可執行文件 - 這會觸發重新安裝,而不是升級引起的問題 升級GUID和產品GUID應該與它是相同的MSI相同謝謝 – Duncan 2010-03-24 06:52:56

+0

從安裝的程序中安全地刪除文件的唯一方法是執行升級。 – 2010-03-24 13:51:52

2

http://msdn.microsoft.com/en-us/library/kz0ke5xt%28v=VS.100%29.aspx

「 如何關閉修爲用戶有望修改或刪除文件?

Visual Studio創建公佈的快捷方式,使程序啓動時,它會驗證一切爲了改變這種行爲並導致它不修覆文件,請在安裝項目中選擇這些文件,並將Condition屬性更改爲NOT REINSTALL,以便該文件不會在修復過程中重新安裝,並且其Transitive屬性將被重新安裝爲TRUE該條件被重新評估,這將導致安裝程序在文件刪除後第一次在屏幕上閃爍因爲它驗證文件不應該被重新安裝,但是在那之後您將不會看到安裝程序。「 」