使用自定义操作时,我的WiX安装程序UI出错。 有趣的是,安装程序在Windows 10中工作正常,但在Windows 7上启动时,安装程序正在中断。
从安装程序日志中,显示错误代码2896
。
谷歌搜索错误代码,指出我可能是.net框架版本的不匹配。所以我修改了我的CustomAction.config
,如下所示:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v3.0" />
<supportedRuntime version="v3.5" />
<supportedRuntime version="v2.0.50727"/>
</startup>
我使用以下命令验证了已安装的版本:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"
我在这里还有别的东西吗?
编辑: 以下是供您参考的自定义操作代码:
namespace ValidateIP
{
public class CustomActions
{
[CustomAction]
public static ActionResult ValidateIP(Session session)
{
session.Log("Begin ValidateIP");
if (string.IsNullOrEmpty(session["IPVAL"]))
{
session["VALIDIP"] = "0";
}
else
{
session["VALIDIP"] = "1";
}
return ActionResult.Success;
}
}
}
答案 0 :(得分:1)
事实证明,尽管我在CustomAction.config文件中使用了不同的.Net版本,但在Custom Action项目中,目标.Net版本为4.5。所以它取代了配置属性。一旦我将它减少到3.5,它就开始工作了。 感谢大家的所有建议。
答案 1 :(得分:0)
我不是托管代码自定义操作方面的专家,Chris Painter是这方面的人,但让我检查一下:
详细,调试,记录 :See installsite.org on logging。从那个内容,我会尝试:
msiexec.exe /i C:\Path\Your.msi /L*vx! C:\Your.log
这是完整的详细日志记录(*v
),包含额外的调试信息(x
)和连续日志记录(!
)(而不是批量写入日志)。后者使安装速度慢得多,但确保没有因崩溃而丢失日志缓冲区。
一些链接(用于保管):