2013-02-25 101 views
2

Iam使用Wix和我有定製行動用.net瞄準Dotnet 4.0編寫。在安裝過程中,在歡迎dlg之後,在系統中檢查dotnet框架,並在不存在dotnetframework必備對話框時顯示。如果安裝了dot net框架,它將轉到progressdialog,在這裏將調用以.net編寫的自定義操作。 但是,在沒有安裝dotnet框架的系統上,msi根本就沒有受到歡迎,它正在拋出以下錯誤。 在下面的條目customaction配置是有Wix .net 4先決條件

<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> <supportedRuntime version="v2.0.50727"/>

它說,下面的錯誤 SFXCA:提取自定義操作來臨時目錄:C:\ DOCUME〜1個\\ LOCALS〜1個\ TEMP \ MSI34.tmp- \ SFXCA:無法獲取請求的CLR信息。錯誤代碼0x80131700 SFXCA:確保安裝了正確版本的.NET Framework,或者在CustomAction.config中存在匹配的supportedRuntime元素。如果您綁定到.NET 4或更高版本,請將useLegacyV2RuntimeActivationPolicy = true添加到元素。

+0

我強烈建議您接受安裝.NET Framework 4.5,而不是安裝在Windows 8上的'.NET Framework 4.0',原因很明顯。你需要更多的代碼和配置文件來幫助你。 – 2013-02-25 14:36:45

+1

這看起來非常相似:http://stackoverflow.com/questions/3298304/wix-custom-actions-built-for-net-framework-4-0-does-not-work-ways-to-resolve – 2013-02-25 15:49:32

+0

你檢查點網絡框架v4?您是否使用Wix .NET擴展來執行此操作?如果您將這些添加到wxs文件並指定正確的條件(請參閱http://wix.sourceforge.net/manual-wix3/check_for_dotnet.htm),則在顯示第一個嚮導頁之前,安裝程序應該顯示友好的錯誤消息,並且乾乾淨淨地出口。過去3年來我一直在我的主要安裝程序包中執行此操作,並且我的CA永遠不會執行,因爲MSIEXEC會立即停止。 – Jay 2013-02-25 17:56:11

回答

0

從上面的註釋中可以看出,自定義操作是在條件檢查之前檢查是否安裝了正確的.NET Framework。解決方法是稍後在UI順序中移動自定義操作。