原文地址:http://www.52bc.net/developer/Net/20100422/5596.html
图文-手把手教你用C#打包应用程序
来自: 52BC.NET | 作者:天使不哭 | 时间:2010-04-22 10:10
摘要:这篇打包的文章原本是我07年发于编程中国的一篇文章,但近来又有诸多朋友问关于C#打包的基础问题,然我精力有限,没有时间再重新做一篇,只要将原来的文章略作整理,重发一遍,希望能对各位有
首先声明一下,
打包附加.netframework包的操作仅在Visual Studio2005以及以上版本才有效,
VS2003的话需要下载一个PluginInstaller.msi插件包,但是目前这个包也不太好找了,
这里我也不再多介绍了,本篇打包部署仅仅为基础的打包方案,
不包含打包SQL服务器的内容.懂得的可以略过,
此篇仅仅提供给那么需要这篇文章的朋友.
此贴原来的地址是:
为2007年4月3日发表的原创文章,刚重新修改和发布前我百度搜索了一下,
发现一个朋友百度空间的一个朋友发表的跟我一模一样,除了图片换掉了,
文字一点都没变,更可耻的是在留言注明了以后,竟然删除了我的留言,无视此事的影响,
在痛恨此人盗版的同时,也难免有些悲哀,
希望如果有朋友希望转载本文章的话,希望能在文章末尾加上本文的地址,
并标明 天使不哭 所创,兄弟码字排版构思也不容易,在此谢谢了。
在此标注这些人的网文地址,以供大家谴责,这些人不配做程序员!!
第一步:新建安装部署项目
打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)
打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)
第二步:安装向导
关闭后打开安装向导,点击下一步,或者直接点击完成.
如下图:
第三步:开始制作
安装向导完成后即可进入项目文件夹:
双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.
PS:在这里,有很多朋友问我,什么是应用程序的可执行文件和相应的类库和组件,在这里我解释一下,应用程序的可执行文件即是你建立的winform应用程序项目最终生成的EXE可执行文件,而相应的类库则是执行这个EXE文件所有需要的非操作系统dll文件,在这里只要将EXE文件选中添加,VS会自动将其用到的DLL文件添加.(这里你可以将应用程序项目中生成方式选择Release,然后生成,将bin/Release文件夹下的文件按结构添加进来即可)
然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中.
这样安装程序安装安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式.
然后右击左边的"应用程序文件夹"打开属性对话框:
将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,
不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称";
修改后如图:
然后打开解决方案管理器,右击你的解决方案名称,选择属性:
在打开的属性页中,选择"系统必备",
在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!
选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)
在这里解释一下3个选项,第一个选项“从组件供应商的网站上下载系统必备组件”,选中此选项,当安装时检测到系统没有安装.netframework组件时,系统提示到微软官方下载组件,并给出下载地址;第二个选项“从与我的应用程序相同的位置下载系统必备组件”,选中此选项,安装程序生成时会在同目录下生成.netframework组件,当安装程序检测到系统没有安装组件时会提示进行安装,当然此选项生成的安装程序会比较大一些;第三个选项,看名字应该也可以猜测到他的意图,可以自行自定.netframework组件的安装位置。
好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功!
第四步:制作完成
现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.
第五步:卸载功能的添加
众所周知,基本上每个安装都会在安装后的程序菜单中提供卸载本程序的快捷方式,从我们以上步骤建立的安装程序并不附加此功能,
但是我们安装后,如果再次运行此安装程序,则会提供重新安装、修改和删除应用程序的功能,也就是程序的卸载功能,也可以通过
控制面板进行卸载完成,不过我们可以看出,程序的打包是通过Windows Installer来完成的,我们这里也可以通过Windows Installer来完成卸载功能。
在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,
这个文件在c:\windows\system32文件夹下,
添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",
当然这个关系不大,改不改都行的.
然后给他创建一个快捷方式,放到桌面或者"开始-程序"中,
我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,
鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,
这个区别很大,这时你就可以看到ProductCode了,
然后打开你创建的那个快捷方式的属性对话框,
在Aguements属性中输入"/x {ProductCode}",
其中的"/x {ProductCode}" 为Windows Installer的卸载命令,高版本也有所不同,高版本的"/uninstall {ProductCode}"也可用,不过"/x {ProductCode}",是通用的。
好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了.现在可以试试生成安装程序,是否已经具有了卸载功能?
PS:在添加某些操作系统DLL的时候可能会有警告的提示,这个不会对程序有什么影响,不用害怕。
好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了.
重新编辑到这也该结束了,如果有什么疑问,
可以在文章评论中发出,我如果看到了可以给大家适当解答一下,
其实安装部署的制作也是博大精深的,
在这里我也只是简单的教给大家制作一个简单的安装程序的方法.
而更深层次的安装部署还需要靠朋友们自己去摸索。
如果本文章对您有帮助,还以为您不要吝啬自己的小手,多打几个字支持一下!