C#使用Microsoft Visual Studio Installer Projects打包桌面程序

1、准备一个winfrom项目

2、安装打包插件

在vs中打开 工具>扩展和更新 搜索Instraller Projectts找到对应的打包插件

3、新建打包项目Setup Project

右键解决方案,添加>新建项目

选择Setup Project类型进行新建

点击确定新建项目

Setup 属性说明:

  • Author : 一般填公司名,会使用其作为软件安装目录名
  • ProductName : 应用程序名称,会使用其作为软件安装目录名
  • Localization : 指定软件运行地语种
  • TargetPlatform : 指定软件目标平台 x86 or x64
  • Version :发布版本号
  • InstallAllUsers : True 效果:“控制面板”程序中会显示公司的名称,安装时默认为“任何人”
  • ProductCode : 默认给出无需修改,当 Version 变动时会提示更改

4、配置打包程序

右键 Application Folder > Add > 项目输出

弹出的窗口,选择需要打包的项目,点击确定

添加外部依赖文件夹或者配置文件夹,打开需要打包的项目生成的目录,直接选择文件夹拖入即可

添加项目文件,右键 Application Folder > Add > 文件,找到debug目录,全选,点击打开即可

5、添加桌面快捷方式

在 Application Folder 文件夹中选中 主输出 右键生成快捷方式,

将快捷方式移至 User‘s Desktop 文件夹

设置快捷方式名称和图标

6、设置安装包安装时.net版本和Vc++环境检查

右键Setup项目 > 属性

在属性页面点击Prerequisites..

选择需要的.net版本号,选择“从我的应用程序相同位置下载系统必备组件”,点击确定

点击应用,点击确定

7、下载需要的.net放到自己的电脑上

打开 Packages 文件夹,默认情况下,该路径在64位系统上为 C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

我们选择的是4.6.1,打开DotNetFX461文件夹

打开Product.xml文件

下载 .NET Framework 

把几个文件下载下来放在DotNetFX461目录下就可以了。

官方地址下载:下载 .NET Framework 4.6.1

打开zh-Hans文件夹

打开Package.xml,下载对应的语言包

8、下载需要的vc++运行时

打开 Packages 文件夹,默认情况下,该路径在64位系统上为 C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

找到vc++运行时所在的目录

打开vcredist_x86\zh-Hans\package.xml  文件,复制vc++运行时下载地址去浏览器直接下载

将下载后的安装包分别放在vcredist_x86\zh-Hans  和 vcredist_x86 目录下

重复以上步骤把其它三个的安装包分别下载下来,放到对应位置,如果复制的网址无法下载安装包,直接跳过该文件夹

9、更简单的方式,选择“从组件供应商的网站上下载系统必备组件”,这样可跳过第7、8步

10、生成.msi安装包

右键Setup项目,点击生成

等待一会成功够,打开项目目录Setup/Debug目录发现已经生成安装包

总结:

此方法打包的安装包,安装时会检查电脑是否有对应的.net环境和vc++环境,如果没有对应的环境自动下载安装运行环境。

特别注意:打包后的文件有两个可执行文件一个setup.exe一个xxx.msi,其中setup.exe为环境检查程序,运行该程序会检查电脑安装环境,电脑环境具备后会自动运行xxx.msi进行安装。xxx.msi为安装程序,如果程序对电脑环境没有要求直接运行该文件安装即可。

这样就存在一个问题,怎么实现只有一个可执行文件,能检查环境还能安装程序呢。请参考将Microsoft Visual Studio Installer Projects生成的.exe和msi文件打包成一个可执行文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值