• VS打包部署图文具体步骤及程序防卸载的制作(password验证卸载)


    1、  在vs2010 选择“新建项目->“其它项目类型”->“ Visual StudioInstallerà

    “安装项目”:

     

    命名为:Setup321 。

    这是在VS2010中将有三个目录,

    1.“应用程序目录”表示要安装的应用程序须要加入的文件。

    2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“開始菜单”中的显示的内容,一般在这个目录中,须要再创建一个文件用来存放:应用程序.exe和卸载程序.exe;

    3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。

    2、  应用程序目录中点右键加入文件:表示加入要打包的文件;

     

    加入的文件通常是已经编译过 应用程序的debug文件夹下的文件

     

    假设debug 以下有子目录 则须要“加入目录”,比如:data

                       

    然后把相应的子文件中的内容加入到此目录中;

    把须要创建程序快捷方式的图标也加入进来:后缀名为:ico


    3、   在创建的项目名称(Setup1)上点击右键:属性

     

         选择系统必备:

         

    然后选择.NET的版本号,和WindowsInstaller3.1(可选项)

    选择:“从与我应用程序同样的位置下载系统必备组件”


    这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET  FrameWork组件;可是安装包会比較大。

    VS2010公布.NET2.0的版本号,在创建安装程序时,须要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”-》“启动条件”: 


    然后VS2010会创建例如以下文件:


    在“启动条件”中 , 点击“.NETFramework”在Version上面选择.NET Framework 2.0;


    这样.NET Framework 2.0上创建的项目在安装时,就不会安装.NET3.5或其它版本号

    也不会重新启动(解决.NET 2.0 创建的项目,安装.NETFrameWork3.5的问题)。

    4、  设置安装文件的文件夹(路径):

    创建的项目名称(setup1)点击左键(不是右键)。在属性中设置參数例如以下图:


    当中Author 为作者。Manufacturer为公司名称;ProductName为应用程序的名字。

    比如我们设置为:BeyondKKO;Manufacturer:自由公司;ProductName:串口測试。

    把InstallAllUsers 设置为True 。

    (这样在“控制面板”程序中会显示公司的名称。

    在安装时会默觉得“不论什么人”,否则默觉得“仅仅有我”)


    在应用程序上点击左键。例如以下图:第一个为系统主文件夹(默认C:Programe)。第二个为公司名([Manufacturer]),第三个为应用程序名称,这样在安装时就会创建两层的文件路径。须要删除DefaultLocation中的:[Manufacturer]。删除后仅仅有应用程序的名称


    5、 创建应用程序图标与卸载程序:

    A.“在应用程序目录”中的.exe文件里,点击右键,创建快捷方式:

     


    重命名“串口測试程序”。然后点击右键属性:选择Icon



    双击进入选择我们之前加入的“1.ico”

    确定后,拖动此快捷方式到“用户桌面”

    B. “用户的‘程序’菜单” 中加入一个目录。命名为:“串口程序”

    然后相同的方式创建TEXTCOM.exe一个快捷方式(“串口測试程序”),拖动到“串口程序”中;

    然后给.NET应用程序创建一个卸载程序:

    在“应用程序目录”中加入:C:WindowsSystem32Msiexec.exe(这里要说明一下,假设不须要在卸载方面做手脚就直接加入C:WindowsSystem32Msiexec.exe,假设须要放卸载或者password验证卸载,此处加入的EXE文件就是此文章后面讲到的防卸载程序运行后产生的EXE文件,请分清!。!。!

    !。!




    右键创建快捷方式,重命名为:卸载,把此快捷方式拖动到“串口程序”;


    点击项目名称(Setup1),在属性中找到:ProductCode


    复制此ProductCode 。粘贴到“卸载”快捷方式的Arguments属性,前面加/x空格


    6、  完毕以上步骤,就能够生成解决方式了。


    在debug目录中就是我们须要的安装包。



    7、  生成解决方式后,

    8、  安装完


    9、在開始菜单中有“串口程序”的目录,里面有我们创建的两个快捷方式;

         



    原文链接:http://wenku.baidu.com/view/b93cebd433d4b14e852468bf.html?re=view   十分感谢这位作者的贡献。本文也是借用了他的文章的部分截图,我也是參考了他的文章才完毕了这一套流程,在他的基础上有了我的创新和扩展,再次感谢。!


    接下来是我的创新扩展。是本文的核心内容:


    我之前在制作一款控制软件时遇到了这样一个问题:要防止卸载。所以就涉及到要写一个卸载程序来控制卸载,本来还打算流氓一点防卸载呢,客户要求是输入正确password就能够卸载,可是之前没有研究过这方面的东西就非常头疼,然后就開始研究注冊表,研究操作系统是调用什么程序来实现卸载的,经过了几天的研究,最终有了收获,就是仅仅要我们写一个卸载程序。然后让系统在卸载时使用我们自己的卸载程序来卸载,我们就能够控制卸载了。上代码吧,


    这里为了演示,仅仅是写了一个非常easy的程序。我就不连接数据库进行password验证了。仅仅为了说明问题。假设有须要,大家在依据自己需求去改,相信大家都会连接,这里须要注意的是这个码一定不要填错了,这个就是之前你在打包部署时的productcode,是一个程序唯一的标示,假设写错了非常有可能就把别的程序卸载了,这个跟之后注冊表里的东西有关系,大家要小心设置。这样一个简单的防卸载程序就写完了,至于怎么放到部署包里。在之前加入卸载程序时,把卸载程序运行完产生的EXE文件当里边即可,就不须要加入Msiexec.exe了,这样打包生成完之后还没有完。你仅仅是把自己的卸载打包部署了。可是程序安装完之后。系统默认调用的是系统卸载程序,这就须要我们去改动注冊表,让系统调用我们的卸载程序,这里我仅仅做手动改动,至于怎么用程序写代码改动就不说了,网上一百度一大堆,

    打开注冊表:

    找到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall程序名字 ,程序名字就是这个码,然后打开这个目录,看到这个:

            首先我们将WindowsInstaller 删除,然后将uninstallstring 改动为你的卸载程序所在的位置。直接写文件位置即可。这样你在打开控制面板卸载程序时。系统调用的就是自己的卸载程序了。就能够做到防卸载。

          至此。基本讲诉完毕了,可能一些细节做得不是非常具体,大家能够依据自己的需求去改动程序,希望会对大家有帮助,假设有说错了的地方请大家批评指正,谢谢

  • 相关阅读:
    GNOME3启动时出错:Oh no! Something has gone wrong.Logout!
    设计模式之迭代器模式
    C#中多线程 委托的使用
    python的memcache使用如果对key设置了一个int型
    Linux select TCP并发服务器与客户端编程
    G++ 教程(转)
    汉语-词语:卓识
    汉语-词语:决断
    汉语-词语:远见
    汉语-词语:胆识
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6908913.html
Copyright © 2020-2023  润新知