2

我正在使用 Wix,并且我在 .net 中针对 Dotnet 4.0 编写了自定义操作。在安装过程中,欢迎 dlg 之后,在系统中检查 dotnet 框架,如果不存在,则会显示 dotnetframework 先决条件对话框。如果安装了点网框架,它将转到进度对话框,在该对话框中将调用用 .net 编写的自定义操作。但是在没有安装 dotnet 框架的系统上,msi 根本不会去welcomedlg 本身,它会抛出以下错误。在 customaction 配置中,有以下条目

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

它显示以下错误 SFXCA: Extracting custom action to temporary directory: C:\DOCUME~1\\LOCALS~1\Temp\MSI34.tmp-\ SFXCA: Failed to get requested CLR info. 错误代码 0x80131700 SFXCA:确保安装了正确版本的 .NET Framework,或者 CustomAction.config 中存在匹配的 supportedRuntime 元素。如果要绑定到 .NET 4 或更高版本,请将 useLegacyV2RuntimeActivationPolicy=true 添加到元素。

4

1 回答 1

0

从上面的评论中可以看出,自定义操作是在条件检查之前安排的,以检查是否安装了正确的 .NET Framework。修复是稍后在 UI 序列中移动自定义操作。

于 2013-03-15T06:41:18.517 回答