VS打包部署图文具体步骤及程序防卸载的制作(password验证卸载)
1、 在vs2010 选择“新建项目->“其它项目类型”->“ Visual StudioInstallerà
“安装项目”:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
命名为:Setup321 。
这是在VS2010中将有三个目录,
1.“应用程序目录”表示要安装的应用程序须要加入的文件。
2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“開始菜单”中的显示的内容,一般在这个目录中,须要再创建一个文件用来存放:应用程序.exe和卸载程序.exe;
3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。
2、 应用程序目录中点右键加入文件:表示加入要打包的文件;
加入的文件通常是已经编译过 应用程序的debug文件夹下的文件;
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
假设debug 以下有子目录 则须要“加入目录”,比如:data
然后把相应的子文件中的内容加入到此目录中;
把须要创建程序快捷方式的图标也加入进来:后缀名为:ico
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
3、 在创建的项目名称(Setup1)上点击右键:属性
选择系统必备:
然后选择.NET的版本号,和WindowsInstaller3.1(可选项)
选择:“从与我应用程序同样的位置下载系统必备组件”
这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;可是安装包会比較大。
VS2010公布.NET2.0的版本号,在创建安装程序时,须要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”-》“启动条件”:
然后VS2010会创建例如以下文件:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
在“启动条件”中 , 点击“.NETFramework”在Version上面选择.NET Framework 2.0;
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这样.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文件里,点击右键,创建快捷方式:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
重命名“串口測试程序”。然后点击右键属性:选择Icon
双击进入选择我们之前加入的“1.ico”
确定后,拖动此快捷方式到“用户桌面”
B. “用户的‘程序’菜单” 中加入一个目录。命名为:“串口程序”
然后相同的方式创建TEXTCOM.exe一个快捷方式(“串口測试程序”),拖动到“串口程序”中;
然后给.NET应用程序创建一个卸载程序:
在“应用程序目录”中加入:C:Windows\System32\Msiexec.exe(这里要说明一下,假设不须要在卸载方面做手脚就直接加入C:Windows\System32\Msiexec.exe,假设须要放卸载或者password验证卸载,此处加入的EXE文件就是此文章后面讲到的防卸载程序运行后产生的EXE文件,请分清!。!。!
!。!
!
)
右键创建快捷方式,重命名为:卸载,把此快捷方式拖动到“串口程序”;
点击项目名称(Setup1),在属性中找到:ProductCode
复制此ProductCode 。粘贴到“卸载”快捷方式的Arguments属性,前面加/x空格
6、 完毕以上步骤,就能够生成解决方式了。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
在debug目录中就是我们须要的安装包。
7、 生成解决方式后,
8、 安装完
9、在開始菜单中有“串口程序”的目录,里面有我们创建的两个快捷方式;
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
原文链接:http://wenku.baidu.com/view/b93cebd433d4b14e852468bf.html?re=view 十分感谢这位作者的贡献。本文也是借用了他的文章的部分截图,我也是參考了他的文章才完毕了这一套流程,在他的基础上有了我的创新和扩展,再次感谢。!
接下来是我的创新扩展。是本文的核心内容:
我之前在制作一款控制软件时遇到了这样一个问题:要防止卸载。所以就涉及到要写一个卸载程序来控制卸载,本来还打算流氓一点防卸载呢,客户要求是输入正确password就能够卸载,可是之前没有研究过这方面的东西就非常头疼,然后就開始研究注冊表,研究操作系统是调用什么程序来实现卸载的,经过了几天的研究,最终有了收获,就是仅仅要我们写一个卸载程序。然后让系统在卸载时使用我们自己的卸载程序来卸载,我们就能够控制卸载了。上代码吧,
这里为了演示,仅仅是写了一个非常easy的程序。我就不连接数据库进行password验证了。仅仅为了说明问题。假设有须要,大家在依据自己需求去改,相信大家都会连接,这里须要注意的是这个码一定不要填错了,这个就是之前你在打包部署时的productcode,是一个程序唯一的标示,假设写错了非常有可能就把别的程序卸载了,这个跟之后注冊表里的东西有关系,大家要小心设置。这样一个简单的防卸载程序就写完了,至于怎么放到部署包里。在之前加入卸载程序时,把卸载程序运行完产生的EXE文件当里边即可,就不须要加入Msiexec.exe了,这样打包生成完之后还没有完。你仅仅是把自己的卸载打包部署了。可是程序安装完之后。系统默认调用的是系统卸载程序,这就须要我们去改动注冊表,让系统调用我们的卸载程序,这里我仅仅做手动改动,至于怎么用程序写代码改动就不说了,网上一百度一大堆,
打开注冊表:
找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\程序名字 ,程序名字就是
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">这个码,然后打开这个目录,看到这个:
首先我们将WindowsInstaller
删除,然后将uninstallstring 改动为你的卸载程序所在的位置。直接写文件位置即可。这样你在打开控制面板卸载程序时。系统调用的就是自己的卸载程序了。就能够做到防卸载。
至此。基本讲诉完毕了,可能一些细节做得不是非常具体,大家能够依据自己的需求去改动程序,希望会对大家有帮助,假设有说错了的地方请大家批评指正,谢谢
VS打包部署图文具体步骤及程序防卸载的制作(password验证卸载)的更多相关文章
- VS2012程序打包部署详解
VS2012没有自带打包工具,所以要先下载并安装一个打包工具.我采用微软提供的打包工具: InstallShield2015LimitedEdition.下载地址:https://msdn.micr ...
- 【转】VS2012程序打包部署详解
上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...
- [转载]VS2012程序打包部署详解
上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...
- (转) VS2012程序打包部署详解
程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的. 经过翻阅资料发现 ...
- VS2012及以上版本 程序打包部署详解
引用: http://blog.csdn.net/zhang_xinxiu/article/details/9099757 程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的 ...
- VS2012 打包部署程序
一. 下载 InstallShield 2015(支持VS2012) VS2012没有自带打包工具,所以要先下载并安装一个打包工具.我采用微软提供的打包工具: InstallShield2015 ...
- 用C#做成的程序如何打包部署,在其他PC机运行
刚刚接触C#,在linux下面做习惯了c和c++,在本机运行OK后,得瑟的去别的机子,居然运行不了,你妹啊,怎么回事,没有.NET Framework,原来和java类似,.NET Framework ...
- VS2012打包部署Winform程序
打包前的准备工作: 新建一个打包部署项目,点OK,如果是第一次使用的话,会打开一个网页,按照提示的步骤来做, 点击上面的step2的网址,进入到另一个网页: 填写完右边的信息,点击“download ...
- VS2013程序打包部署(图解),vs2013部署
VS2013程序打包部署(图解),vs2013部署 首先要说明的是VS解决方案配置下的Debug模式和Release模式有什么区别.Debug模式通常称为调试模式,它包含调试信息,未对代码进行优化,方 ...
随机推荐
- iOS重签
由于渠道推广需要,可能需要多个包做备份推广,区别是icon.游戏名称.登录logo.bundleid.签名证书.支付Consumables不同,其他游戏包体完全相同. 反复修改多次文件提交Jenkin ...
- WEB下的excel批量导入功能
新手学习中,记录一下excel导出功能实现的整个流程.使用框架ssm. control层 importExcel+parseDataItem: @RequestMapping("import ...
- Android(java)学习笔记193:ContentProvider使用之获得系统联系人信息01
1.系统联系人的数据库(3张最重要的表) (1)raw_contacts 联系人表 保存联系人的id contact_id (2)data 数据表 保存联系人的数据 ( ...
- 一起来学SpringBoot(十七)优雅的参数校验
参数校验在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动方法内代码显得冗长每次要看哪些参数 ...
- CAD参数绘制半径标注(com接口)
主要用到函数说明: _DMxDrawX::DrawDimRadial 绘制一个半径标注.详细说明如下: 参数 说明 DOUBLE dCenterX 被标注的曲线的中点X值 DOUBLE dCenter ...
- SQL Server错误: 0 解决方案
1.已设置两种登录模式. 2.SQL Server配置管理器已配置好. 按Windows徽标键+R组合键,然后输入cmd. 再然后输入netsh winsock reset.接下来重启电脑,应该就可以 ...
- 15数据库与ADO.Net
数据库与ADO.Net 数据库与ADO.Net 8.1 数据库基本概念 数据库提供了一种将信息集合在一起的方法.数据库应用系统主要由三部分组成:数据库管理系统(DBMS),是针对所有应用的,例如A ...
- cssrefresh.js-CSS文件自动刷新
一.如何使用cssrefresh.js 使用很简单,类似下面的代码: <head> <link rel="stylesheet" type="text/ ...
- ZOJ - 3204 Connect them 最小生成树
Connect them ZOJ - 3204 You have n computers numbered from 1 to n and you want to connect them to ma ...
- pip 打包项目配置库
打包项目中配置库(filename为文件名,可修改) pip freeze > filename.txt 安装配置文件中所有的库包 pip install -r filename.txt 如提示 ...