当前位置: 首页 > news >正文

怎样制作C#安装程序

 近期须要制作一个C#安装。在网上找了一些资料发现都不是非常完整,最后自己综合了一些资料,而且通过亲自检測,最后成功完毕C#打包成安装程序(打包成最简单的一种安装程序。假设须要更高的功能请自己在开发)。

详细步骤整理例如以下:

该打包过程在vs2008中完毕,但也适用于vs2005。程序是用C#写的。

1.新建安装和部署。

打开你所写的项目。在解决方式上右键->加入->新建项目。

如图:  怎样制作C#安装程序

 

选择其它项目类型->安装和部署->安装项目。

在名称中把名字改为你所希望的名字,然后确定。如图:

怎样制作C#安装程序


 

2.确定后打开文件系统,然后单击应用程序目录,在右边空白处右键->加入->项目输出。

如图:

怎样制作C#安装程序

 

3.选择主输出。然后确定。

这时文件系统中的应用程序目录如图:

怎样制作C#安装程序

 

4.在刚加入的主输出上右键,创建其快捷方式。能够重命名也可不重命名。这里命名为PicSee。如图:

怎样制作C#安装程序

 

5.剪切刚创建的快捷方式。然后单击用户的程序菜单,在其上右键,加入,目录。重命名目录。

这个目录名字就是你在開始,全部程序中显示的名字。然后单击刚创建的目录。在右边空白处粘贴快捷方式,安装好程序后,这个快捷方式会出如今全部程序中。

如图:

怎样制作C#安装程序

 

6.像上面一样再创建一个快捷方式。剪切。然后单击用户桌面,粘贴。安装完程序后,这个快捷方式出如今桌面。如图:

怎样制作C#安装程序

 

7.右击左边的"应用程序文件夹"打开属性对话框将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,不然的话做好的安装程序默认安装文件夹会是"c:\programm file\你的username\安装解决方式名称"

8.右键你的安装项目名。属性。如图:

怎样制作C#安装程序

在打开的属性页中,选择"系统必备",在打开的系统必备页中,选中例如以下图中的选择项,选上以后,在生成的安装文件包中包括.netframework组件,然后确定。

怎样制作C#安装程序

9.改变桌面和開始程序中该程序的默认图标。在应用程序目录右边空白处,右键->加入->文件。加入一个ico文件。如图:

怎样制作C#安装程序

 

打开用户的程序菜单->PicSee,在右边的快捷方式上右键。属性窗体。向其属性中的icon属性加入刚加入的ico图标。

同理,打开用户桌面。在右边的快捷方式上右键,属性窗体。向其属性中的icon属性加入刚加入的ico图标。

 

10.加入卸载功能。

在应用程序目录右边空白处,右键->加入->文件。选择c:\windows\system32目录下的msiexec.exe文件。然后重命名为Uninstall.exe。改不改名字都能够。如图:

怎样制作C#安装程序

然后创建快捷方式。剪切到用户的程序菜单->PicSee中。

如图:

怎样制作C#安装程序

 

11.用鼠标左键单击安装项目(下图为PicSee)名,查看其属性。注意不是右键。属性。查看其ProductCode属性。

然后复制该属性的值。如图:

怎样制作C#安装程序

12.然后打开你创建的那个卸载快捷方式的属性对话框,Aguements属性中输入"/x {ProductCode}",本例为/x {D8DB4DCF-B28A-49CB-9840-E36D68FD7EE1}

如图:

怎样制作C#安装程序

 

13.右键安装项目(PicSee)名,单击生成,就可以生成带有卸载功能的安装程序了

  至此一个简单的安装程序就做好了,在此感谢全部网友的帮助,感谢你们提供的资料。

相关文章:

  • Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
  • [UWP]了解模板化控件(6):使用附加属性
  • 新公司,新挑战
  • linux: 进程管理常用指令
  • RabbitMQ6种常用业务场景分析
  • 面试题——敲代码推断操作系统位数
  • FetchType与FetchMode的差别
  • 4443: [Scoi2015]小秃玩矩阵|二分答案|匈牙利
  • OPENGL 红宝书实验笔记
  • 智能家居新品迭出 巨头涌入加速产业升级
  • 不谈营收的 SaaS 增长都是耍流氓!
  • “云上贵州”大赛完整诠释大数据三大业态
  • 苹果芯片订单立功 台积电股价创新高
  • 通讯应用Kik推出聊天机器人商店
  • 360回归A股再进一步:上市辅导进展工作报告出炉
  • JS 中的深拷贝与浅拷贝
  • 【Amaple教程】5. 插件
  • 0x05 Python数据分析,Anaconda八斩刀
  • Fundebug计费标准解释:事件数是如何定义的?
  • golang中接口赋值与方法集
  • IOS评论框不贴底(ios12新bug)
  • laravel5.5 视图共享数据
  • Linux CTF 逆向入门
  • PhantomJS 安装
  • vuex 笔记整理
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 以太坊客户端Geth命令参数详解
  • 与 ConTeXt MkIV 官方文档的接驳
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #Java第九次作业--输入输出流和文件操作
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (3)选择元素——(17)练习(Exercises)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C语言)fgets与fputs函数详解
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (算法设计与分析)第一章算法概述-习题
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)【Hibernate总结系列】使用举例
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET 指南:抽象化实现的基类
  • .net中的Queue和Stack
  • .net专家(高海东的专栏)
  • .py文件应该怎样打开?
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @EventListener注解使用说明
  • @TableId注解详细介绍 mybaits 实体类主键注解