自己制作了一个winform应用程序,想和.netframework的安装程序打包成一个安装文件,请注意:是一个文件

不是一个安装文件+若干组件、补丁等

C#程序打包与部署
一).创建部署项目
1. 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。
2. 在“添加新项目”对话框中,选择“其它项目类型”窗格中的““安装项目”。在“名称”框中键入 setup。
3. 单击“确定”关闭对话框。
4. 项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。 里面包括3个文件夹:应用程序文件;用户的“程序”文件,用户桌面。右键点击应用程序文件,选择添加->文件。找到你所建项目生成的bin->debug.里面文件,全选,点击打开。
5、找到你的项目文件名.exe文件,右键创建快捷方式,将生成的快捷方式放到用户桌面文件夹
6、此时右键点击所建的安装项目,选择生成。便开始对安装文件进行打包。完成以后再这个项目的debug文件夹中,就可以得到setup安装包。打包成功!
7、如果还想做一个卸载文件,需要执行以下步骤。还是在用户程序文件里面添加文件,浏览c->windows-system32->msiexec.exe。添加该文件。
8、查看安装项目属性productcode 类似“{F2B5B56B-6A26-4A95-A756-89EBF6F2CE64}”。复制下来。打开刚添加的msiexec.exe的属性,在condition里面写:/x复制的productscode.
9、对msiexec.exe再建一个快捷方式,改个名字,放到:用户的“程序”文件 的文件夹中。再打包。用户安装完以后,在开始菜单-》程序-》项目名字就可以看到卸载文件了。

七).打包时加入卸载功能:
方法一:
1.在打包项目中添加文件msiexec.exe(一般可在c:\windows\system32\下找到)
2.在文件系统视图中选择应用程序文件夹,在msiexec.exe上按右键,选择创建快捷方式,重命名快捷方式为"卸载".
3.更改此快捷方式的Arguments 为"/x {产品id}",产品id的值为打包项目的ProductCode属性值.
方法二:(推荐)
1.先生成安装包,记下ProductCode(选择解决方案资源管理器根目录如setup1,再查看属性标签,不是右键中的属性),下面要用到
2.用VS.net建立一个新的控制台程序uninst.exe文件
if(System.Environment.OSVersion.ToString().IndexOf("NT 5")>0)
{

Process.Start("msiexec", "/X{492472A2-C9BA-46A3-9DB4-2FA098AD1D07}");//改为自己的ProductCode
}
3.将控制台程序BIN目录的exe文件加入到打包程序文件中,在程序组创建uninst.exe的快捷方式
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-16
在VS中新建部署项目,项目中添加winform的项目输出,依赖选择合适的.netframework版本,在项目上右键属性,包文件,选择 在安装文件中,生成,即可。追问

说了半天你还是不看,真不知道你是复制的还是真没看懂

追答

你是说按这样的方式做成的安装包不是一个文件是吧,你可以把这样生成的安装包,用RAR压缩成自解压文件,然后选择解压到临时文件夹,自动执行setup.exe,就成一个文件了。

本回答被提问者采纳
第2个回答  2011-11-16
可以打包成一个安装文件,但是不能和.net framework一起打包成一个安装文件。网上有一些高手以某些非常规方法能在某种程度上实现。但限制较多,并不太实用。
第3个回答  2011-11-18
这个问题我也纠结了几天,最后还是觉得用专业的打包工具比较好。vs上的打包都是安装文件+若干组件、补丁。专业的打包工具就不会了。你上网找找,很多的
第4个回答  2011-11-16
我也想过这个问题怎么搞。。可是想想就算你打包成一个文件了。那又如何。?还不是要安装。? 还不如想想怎么重根本解决问题呢。追问

咱俩要求不一样。打包成一个要安装的,就已经能满足我的需求了。现在就是不能变成一个

追答

袄。。 那这个我帮不了你了。。不好意思。。 如果是想要一键安装的话还是可以实现的。但是搞到一起就不太懂了。。不好意思。

相似回答