我们有一个MSI在客户机上安装Windows服务。 Windows服务调用我们的服务器的Web服务来执行操作。 最初,MSI和Web服务都是使用.NET 2.0框架构建的。MSI安装.NET 4.0升级错误 - XML不包含预期的属性错误
上个季度我们将系统升级到.NET 4.0。虽然我们的Web服务仍然是ASP.NET,即asmx(而不是WCF)。此外,我确实将框架4.0设置为MSI安装的先决条件。
我们的一个客户报告此问题:
客户端是使用.NET Framework 2.0,并且有安装在他的系统旧版本的MSI的。 当他试图安装MSI的.NET框架4.0版本时,系统提示您安装框架4.0(由于先决条件)。一旦框架安装完成,他试图安装MSI并得到这个错误。有人能指导我解决问题吗?如有需要,我可以提供详情。
编辑1:
在更多的研究,我发现这是我AppName.installstate文件。卸载会删除此文件,但升级不会。该文件位于安装目录中。仔细一看,我可以在文件内容中看到“http://schemas.xmlsoap.org/soap/envelope/:Envelope”。任何指针将不胜感激。
编辑2:
自定义操作安装创建AppName.installstate文件和自定义操作卸载删除该文件。就我而言,我正在进行MSI升级,对此文件不做任何处理。当我比较2.0和4.0的installstate文件(都是手动安装的)时,我可以看到XML语法,模式和内容的巨大差异,原因是,我得到序列化错误。现在我需要知道为什么AppName.installstate在升级时不会被覆盖。做很多谷歌,但没有登陆。 看着MSI安装日志,但没有有用的信息。
Windows Installer *不会*生成installstate文件。安装程序类/ InstallUtil自定义操作(在您的服务中)执行。 – 2017-07-18 11:15:32