zoukankan      html  css  js  c++  java
  • VS自带的打包工具,实现覆盖安装终极总结

    吐槽下,这个问题纠结了很长时间,很是心累,百度了好多说的都不完整,也很分散,要么不全,要么阐述的不清楚,所以为了后续兄弟们不入坑,归纳下最全的如下:

    1.两个版本的属性RemovePreviousVersion和DetectNewerInstalledVersion都设为True;(DetectNewerInstalledVersion这个属性意思自己百度了下,是指定在目标计算机上安装时是否检查有无应用程序的更新版本。 如果此属性设置为 True,并且在安装时检测到了更高的版本号,则结束安装),其实就是防止安装了高版本,再安装低版本问题的


    2.两个版本的ProductCode不能相同,这个不用自己手动修改,下面会说;


    3.两个版本的UpgradeCode必须相同;


    4.部署项目属性中的Version必须大于旧版本; 这个就是打包项目,属性-Version必须大于上个打包的版本号,同时修改这个的时候,上面的ProductCode会自动修改,所以上面不用手动修改,如果你没修改这个,安装包开始是不提示那个已经有版本的错误了,但下一步后会提示已经有个最新版本,还是不能覆盖安装


    5.新版本的程序集版本号要大于旧版本; 这个是我纠结最长时间的,因为好多作者解答中就没有这个,但这个是最关键的,不改这个,你看着安装包是正常覆盖安装了,结果项目生产的那些dll和exe根本就没覆盖,还是老的,日了狗了,没这个前面再好,也是白折腾。这个就是修改每个项目下Properties-AssemblyInfo文件最下面那个版本号,(有两个,我也没试是哪个,都改了),改了这个版本号后安装就会覆盖老的


    6.配置信息Config.Xml文件保留的方法(部署项目中找到Config.Xml文件,然后在属性中将Permanent属性设置为True)

    注释:Permanent指定卸载应用程序时是否移除文件,这个我没设置也可以用

    7.关于dll注册问题,有些dll需要注册,安装的时候会提示让注册,这时可以dll右键属性--Register,注册属性:我们一般只用三种,vsdrfDoNotRegister:从不注册,vsdrfCOMRelativePath:注册需要注册的dll文件,vsdrfCOMSelfReg:注册ocx组件。

    以上就是总结的覆盖安装的东西.

    注意:

    1.个人还遇到了个问题就是,在win10打包的,win7上不能卸载,win7打包的,两者都可以正常卸载

  • 相关阅读:
    jquery 操作大全
    http获取图片信息
    微信公众号服务号与订阅号有什么区别?
    国际语言代码 Language Code
    vs 2012 未能找到与约束contractName Microsoft.VisualStudio.Utilities...匹配的导出
    SQL Server 获取满足条件的每个条件下的前N条数据
    使用uploadify上传图片时返回“Cannot read property 'queueData' of undefined”
    Visual Studio 2017 添加引用报错(未能正确加载ReferenceManagerPackage包)
    html之select标签
    jQuery中Ajax的属性设置
  • 原文地址:https://www.cnblogs.com/dachuang/p/14026847.html
Copyright © 2011-2022 走看看