• 用VS自带的打包程序打包Web程序,在Win7安装时出现错误1603


         最近用VS2005的打包程序对一个Web程序进行打包,在Win7系统中进行安装,总是出错错误,直接双击安装程序,就弹出:

    clip_image002

         在Xp的机器上安装是好的,换另外一台Win7的机器,进行安装,竟然也是好的。由此证明,安装程序肯定是没有问题,有可能是两台机器的设置不同而导致的。但是它又没报具体是什么错误导致的。只好在Windows的系统日志中去找,幸好有相关的记录。

    clip_image004

         找到来源为“MsiInstaller”的那条信息,双击

    clip_image006

         看到上面显示“安装成功或错误状态:1603”,和其他电脑上安装成功的消息一对比,发现安装成功的返回的是0而不是1603,好,那就在网上搜索安装时返回1603的错误。

          结果别人说这个错误是一个非常抽象的错误,在安装过程中遇到很多问题后都会返回这个错误,根本不具体。最后找到一个外国人的文章,说是启动一下安装程序的日志,你安装的时候,就会在C:\Users\用户名\AppData\Local\Temp中生成一个msi*.log的日志文件。查看这个日志文件,里面有详细的记录。

          一般的电脑在默认的情况下,并不会去记录这个日志文件,需要修改注册表的选项,启动附件中的“命令提示符”,运行以下命令

       1: reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Debug /t REG_DWORD /d 7 /f 
       2:  
       3: reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Logging /t REG_SZ /d voicewarmupx! /f
       4:  

          然后重新启动你的安装程序,它肯定还是有错误,不能安装,不过不要紧,你再查看你的C:\Users\用户名\AppData\Local\Temp中,就会生成一个msi*.log的日志文件。例如,我的电脑上生成的是下面的日志文件:

    clip_image008

         打开这个日志文件。查找“return value 3”,如果是中文的操作系统,就查找“返回值 3”,找到后,查看这句话,上面的几行,那里就是具体的错误信息。

    clip_image010

        我的上面报的错误是

    SetTARGETSITE  CustomAction WEBCA_SetTARGETSITE returned actual error code 1603

        我就搜索这个错误,在这个网站http://social.msdn.microsoft.com/Forums/zh-CN/winformssetup/thread/a62d76f1-1b1f-4609-8779-555cac8329f4找到了一个答案

    clip_image012

         解决方法就是把IIS设置成兼容IIS6.我们知道win7系统中的IIS都是7.0及以上版本,我是用VS2005进行打包的,又因为是Web程序,所以它可能需要在IIS6兼容的模式下进行工作。

         我尝试一下,在控制面板中,打开“添加或删除Windows功能”,用两台电脑进行对比,发现,果然能成功安装的电脑中,已经设置了IIS6兼容,不能成功安装的没有设置。我在那台安装失败的电脑上进行了设置,让它兼容IIS6,打上勾即可。

    clip_image014

        再重新安装应用程序,安装成功。问题顺利的解决。

    需要注意的问题:

    1. 大家在查看日志文件的时候,会发现里面有这样的语句:

    VSDNETURLMSG = 此安装程序需要 .NET Framework 版本 2.0.50727。请安装该 .NET Framework 版本,然后重新运行此安装程序。可以从 Web 获得 .NET Framework。要立即做此事吗?

    Property(C): VSDIISMSG = 此安装程序需要 Internet Information Server 4.0 或更高版本,以及 Windows NT 4.0、Windows 2000 或更高版本。此安装程序无法安装在 Windows 95、Windows 98 或 Windows Me 上。请安装 Internet Information Server,然后重新运行此安装程序。

    Property(C): VSDUIANDADVERTISED = 不会安装该公布应用程序,因为它可能不安全。请与管理员联系将程序包的安装用户界面选项更改为基本。

    Property(C): VSDNETMSG = 此安装程序需要 .NET Framework 版本 2.0.50727。请安装该 .NET Framework 版本,然后重新运行此安装程序。

    Property(C): VSDINVALIDURLMSG = 指定的路径 '[2]' 不可用。Internet Information Server 可能并未运行或者是路径已重定向到另外的计算机。请检查 Internet Services Manager 中虚拟目录的状态。

    有很多人就误以为是FrameWork的版本不对,我发现,就算是成功安装,它的日志文件里面也会出现这些信息,这就证明,这不是错误的原因。所以大家在找错误的时候,记得一定要去查找“reutrn value 3”的前面几行,或者是“返回值 3”的前面几行,这才是真正的错误的地方。

    2.为了让系统记录安装的日志文件,我们修改了注册表,增加了两个键,用完之后,如果你怕以后产生一些不必要的垃圾日志文件,最后是把这两个键给删掉,以后不让它记录日志文件,删除的方法是,运行以下命令

    reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Debug /f

    reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Logging /f

    参考文章:

    http://blogs.msdn.com/b/astebner/archive/2005/03/29/403575.aspx

    http://blogs.msdn.com/b/astebner/archive/2008/02/27/7927123.aspx

    http://social.msdn.microsoft.com/Forums/zh-CN/winformssetup/thread/a62d76f1-1b1f-4609-8779-555cac8329f4

    http://social.msdn.microsoft.com/Forums/zh-CN/windowsgeneraldevelopmentissues/thread/d01e1909-4ae3-4009-a7a6-81038053695f

  • 相关阅读:
    使用 EasyBCD 安装Ubuntu 14.04 Error 15: file not found错误的解决方法
    浅谈程序猿的职业规划,看你如何决定自己的未来吧。
    [转载]DOS循环:bat/批处理for命令详解 (史上虽详尽的总结和说明~~)
    bat 批处理 字符串 截取
    window上使用GIT的个人经验(入门级)
    Android 访问 wcf
    解决 MyEclipse 10 中 JSp页面 “return false” 报错问题
    微信公共平台(码农在努力)
    Spring Cloud 中使用 Zipkin 追踪服务
    Spring Cloud Config 分布式配置中心
  • 原文地址:https://www.cnblogs.com/xiaoxiangfeizi/p/2498850.html
Copyright © 2020-2023  润新知