是否有任何方法可以使用Visual Studio 2008創建Windows Installer以同時針對x86和x64操作系統。針對Windows Installer中的x86和x64(VS2008)
在TargetPlatform屬性中,我只是:x86
,x64
,Itanium
。我知道還有一個叫Any CPU
的地方,但我找不到它。
此外,我不想創建兩個安裝程序。
任何想法?
謝謝。
是否有任何方法可以使用Visual Studio 2008創建Windows Installer以同時針對x86和x64操作系統。針對Windows Installer中的x86和x64(VS2008)
在TargetPlatform屬性中,我只是:x86
,x64
,Itanium
。我知道還有一個叫Any CPU
的地方,但我找不到它。
此外,我不想創建兩個安裝程序。
任何想法?
謝謝。
這是可以做到的,但不能直接在Visual Studio中的一般做法是這樣的:
您可以Orca創建變換。如果你想要一個商業解決方案,你可以嘗試高級安裝程序或InstallShield。
如果這看起來太複雜了,您可以簡單地使用單獨的32位和64位軟件包。
我可能是錯的,但我很確定這不能完成。 您提到的Any-CPU被.Net編譯器用於您的程序集(.Net程序集默認情況下是架構不可知的,但可以被強制編譯爲x86或x64)。 但是由於windows-Installer是一個原生的win32 exe,它不能被生成爲「Any-CPU」。 因此,您必須爲x86和x64生成2個相同的安裝程序。
你是部分正確的 - MSI不是可執行文件*,它實際上是由'msiexec.exe'讀取並執行的排序數據庫。 (*如果「MSI」有'。exe'後綴它是一個引導程序包裝MSI,引導程序是編譯代碼,但可以在沒有任何問題的情況下在64位系統上運行)。 – slugster
它可以完成,但不能與VS安裝程序。我有一位使用InstallShield產品實現了這一點的同事,但讓我說這是一個絕對的黑客攻擊,最終他得到了一個更好的結果,使得兩個不同的安裝程序,每個目標位都有一個安裝程序。
我還需要開導你:
在上投放的財產,我剛:86,64,安騰。我知道,有另外一個地方叫任何CPU
的TargetPlatform
屬性不會更改您要安裝,你得到它夾雜了組件本身的目標平臺的應用程序的位數。 MSI是運載工具,其中的.Net程序集是有效載荷。 TargetPlatform
MSI上的設置不管理.net程序集是如何編譯JIT的,而是用於幫助確定安裝路徑(如果它設置爲x86,那麼默認安裝路徑應爲%PROGRAMFILES(x86)%
,並且不同的註冊表配置單元將爲。針對性
+1,很好的答案。 – slugster
不錯。謝謝... – Sunil