我正在創建一個Visual Studio 2010安裝項目來安裝我的應用程序。我的應用程序通過爲不同的系統位數提供多個可執行文件來工作,並檢測您是否在32位或64位系統上運行。安裝VC++運行時64位如果系統是64位
如果是64位系統,我希望安裝由安裝程序安裝的Visual C++ 2010 x64運行時。將此設置爲先決條件,禁用32位系統上的安裝。有沒有什麼方法可以將此設置爲先決條件,但僅限於64位系統,而不訴諸兩種不同的安裝程序?
我正在創建一個Visual Studio 2010安裝項目來安裝我的應用程序。我的應用程序通過爲不同的系統位數提供多個可執行文件來工作,並檢測您是否在32位或64位系統上運行。安裝VC++運行時64位如果系統是64位
如果是64位系統,我希望安裝由安裝程序安裝的Visual C++ 2010 x64運行時。將此設置爲先決條件,禁用32位系統上的安裝。有沒有什麼方法可以將此設置爲先決條件,但僅限於64位系統,而不訴諸兩種不同的安裝程序?
您需要爲64位版本和32位版本創建單獨的MSI文件來處理WOW64的特性。
它是不可能有一個單一的MSI安裝兩個64位和32位版本:
Different Packages are Required for Different Processor Architectures
因爲你將有單獨的MSI文件它應該可以輕鬆地將64位VC++運行時可再發行組件添加到64位MSI,將32位可再發行組件添加到32位MSI。
當然,您可以創建一個引導程序來檢查系統架構,然後啓動相應的MSI文件。我相信dotNetInstaller提供瞭如related question所示的機制。
我該如何在VS2010中做到這一點?我可以創建兩個安裝項目,並使32位安裝程序包含64位安裝程序嗎?如果是這樣,我該如何安裝64位版本,具體取決於系統的位數? – 2010-09-23 09:30:27
我想我的解決方案是在安裝過程中放棄x64要求。當您啓動程序時,我會提示用戶下載並安裝正確的程序包(直接鏈接)以使程序正常工作。在稍後的階段,我可能會添加一個更簡化的方法,自動下載並安裝它(當然還有用戶的許可)。 – 2010-09-23 09:57:00