如何在.NET 自动安装包项目(Visual Studio Installer Projects)中设置安装包自动安装 .NET Framework环境
前言
Microsoft Visual Studio Installer Projects是一组用于创建安装程序的工具,它是Microsoft Visual Studio的扩展。这些工具允许开发人员在Visual Studio中创建和定制安装程序,以便将他们的应用程序打包并分发给用户。
使用Visual Studio Installer Projects,开发人员可以通过可视化界面来配置安装程序的各种设置,并且可以使用自定义脚本和自定义操作来满足特定的安装需求。该工具集成在Visual Studio开发环境中,使开发人员能够在同一环境中进行应用程序的开发和安装程序的创建。
Visual Studio Installer Projects支持创建多种类型的安装程序,包括MSI(Microsoft Installer)和ClickOnce。MSI是一种常见的安装程序格式,它提供了更高级的功能和灵活性,可以执行更复杂的安装操作。ClickOnce是一种更简单的安装方式,适用于部署和更新较小规模的应用程序。
本文主要介绍在如何在.NET 自动安装包项目(Visual Studio Installer Projects)中设置安装包自动安装 .NET Framework环境。
新建一个.NET WinForm 项目
为方便演示,我这里新建一个 WinForm APP (.NET Framework) 控制台程序。如图所示:
随便放点控件上去。便于演示
安装 Installer Project 插件
VS -> 扩展 -> 管理扩展 -> 联机 -> 搜索"Install project" ->选择Microsoft Visual Studio Installer Projects 下载安装:
新建安装项目(Setup Project)
VS -> 选择解决方案右键-> 添加 -> 新建项目 -> 搜索模板 “Installer”
安装包类型 | 用途 |
---|---|
Setup Projet | 创建一个可以添加文件的 Windows Installer 项目 |
Web Setup Projet | 创建一个可以添加文件的 Windows Installer Web 项目 |
Merge Module Project | 创建一个可以添加文件的 Windows Installer 合并模块项目 |
Setup Wizard | 借助安装向导创建 Windows 安装程序项目 |
这里我们选择 Setup Project 。
设置 WinForm Project 输出到Setup Project
本步骤主要演示设置.net 项目与安装程序的关联,这里我以项目输出为例进行演示。最终安装包打包过程中会自动将.net 项目生成的DLL、EXE等release输出文件输出到安装包中。当然根据你的业务需要,也可以往安装包中添加其他类型的文件、程序集等。
VS -> 右键Setup -> Add -> 项目输出
设置如下配置,输出类型选择Primary output(主输出)
NET Framework 安装包
VS -> 右键Setup -> 属性 -> 进入Setup属性页对话框 -> Debug -> Prerequisite(先决条件)
注意:Debug和Release需要设置相同的先决条件,以免出错。
进入先决条件对话框
选择你要的 .Net 环境 ->指定系统必备组件的安装位置为:从与我应用程序相同的位置下载系统必备组件 ->确定->应用->确定
生成安装包
VS -> 选择Release模式 -> 右键Setup -> 生成
生成报错及原因分析:
首次生成会出现如下报错。
这里面主要有两个问题,一个warning,一个error。我们分别来解决:
1. 警告(Warning)的解决
警告信息如下:
WARNING: The version of the .NET Framework launch condition ‘.NET Framework 4.7.2’ does not match the selected .NET Framework bootstrapper package. Update the .NET Framework launch condition to match the version of the .NET Framework selected in the Prerequisites Dialog Box.
解决方法:
VS -> 右键Setup -> 在文件资源管理器中打开文件夹 -> 用文本编辑器打开 Setup.vdproj -> 搜索4.7.2,改成 4.8 ->重新生成,警告消失
运行结果如下,可以看到Warning消失,只剩下Error。
2. 报错(Error)的解决
报错信息如下:
ERROR: To enable ‘Download prerequisites from the same location as my application’ in the Prerequisites dialog box, you must download file ‘DotNetFX48\NDP48-x86-x64-AllOS-ENU.exe’ for item ‘Microsoft .NET Framework 4.8 (x86 and x64)’ to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=616018.
ERROR: General failure building bootstrapper
ERROR: Unrecoverable build error - 0x80004005
错误原因分析:
微软官方解释:How to: Include Prerequisites with a ClickOnce Application
在你将先决条件软件与ClickOnce应用程序一起发布之前,你必须首先将这些先决条件的安装程序包下载到你的开发计算机。当你发布一个应用程序并选择从与我的应用程序相同的位置下载先决条件时,如果安装包不在软件包文件夹中,就会出现错误。
解决方法:
使用 Package.xml 添加安装程序包
查看所需安装的.NetFramework PackageFile 信息
打开 Packages 文件夹
默认情况下,该路径在64位系统上为 C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages 。如图
查看先决条件文件夹的配置信息
打开要添加的先决条件的文件夹,.net framework 4.8 对应文件夹:DotNetFX48。
然后用文本编辑器打开 Product.xml 查看我们需要手动下载的文件。
如图所示,可以看到我们需要手动下载的是两个PackageFile文件:
NDP48-x86-x64-AllOS-ENU.exe 和 NDP48-Web.exe
下载 .NET Framework PackageFile
我们可以去百度上把几个文件下载下来放在DotNetFX48目录下就可以了。
也可以去微软官方地址下载:下载 .NET Framework 4.8
下载中文语言包
进入zh-Hans文件夹:
在文本编辑器中,打开 Package.xml 文件:
我们继续前往 .NET Framework 4.8 下载中文(简体)语言包,并放到 \Packages\DotNetFX48\zh-Hans目录下
重新生成,error消失。
生成出来以后会多一个DotNetFX48的文件夹。
这样一来安装包就会自动安装.Net Framework环境。
猜你喜欢
- 22天前(万豪酒店 珠海)万豪酒店品牌启航珠海金湾,续写大湾区拓展新篇
- 22天前(四川推进世界重要旅游目的地建设工作)四川推进世界重要旅游目的地建设
- 22天前(云南滇陇工程咨询有限公司)陇滇携手谋发展 文旅合作谱新篇
- 22天前(“清透会呼吸”轻松拿捏春日出游氛围感)“清透会呼吸”轻松拿捏春日出游氛围感
- 22天前(澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布)澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布
- 22天前(当科学邂逅喜剧:科技馆喜剧嘉年华背后的"文旅破壁者")当科学邂逅喜剧:科技馆喜剧嘉年华背后的"文旅破壁者"
- 22天前(万豪旅享家活动2021)精彩上新,漫享夏日----跟随万豪旅享家新开酒店解锁夏日旅行灵感
- 22天前(新西兰登陆《我的世界》!全球首个目的地游戏模组震撼上线)新西兰登陆《我的世界》!全球首个目的地游戏模组震撼上线
- 22天前(泸沽湖大酒店地址)泸沽湖岚岳酒店盛大开业|以摩梭文化为魂,打造高端度假新地标
- 22天前(我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章