如何在.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环境。
为方便演示,我这里新建一个 WinForm APP (.NET Framework) 控制台程序。如图所示:
随便放点控件上去。便于演示
VS -> 扩展 -> 管理扩展 -> 联机 -> 搜索"Install project" ->选择Microsoft Visual Studio Installer Projects 下载安装:
VS -> 选择解决方案右键-> 添加 -> 新建项目 -> 搜索模板 “Installer”
安装包类型 | 用途 |
---|---|
Setup Projet | 创建一个可以添加文件的 Windows Installer 项目 |
Web Setup Projet | 创建一个可以添加文件的 Windows Installer Web 项目 |
Merge Module Project | 创建一个可以添加文件的 Windows Installer 合并模块项目 |
Setup Wizard | 借助安装向导创建 Windows 安装程序项目 |
这里我们选择 Setup Project
。
本步骤主要演示设置.net 项目与安装程序的关联,这里我以项目输出为例进行演示。最终安装包打包过程中会自动将.net 项目生成的DLL、EXE等release输出文件输出到安装包中。当然根据你的业务需要,也可以往安装包中添加其他类型的文件、程序集等。
VS -> 右键Setup -> Add -> 项目输出
设置如下配置,输出类型选择Primary output(主输出)
VS -> 右键Setup -> 属性 -> 进入Setup属性页对话框 -> Debug -> Prerequisite(先决条件)
注意:Debug和Release需要设置相同的先决条件,以免出错。
进入先决条件对话框
选择你要的 .Net 环境 ->指定系统必备组件的安装位置为:从与我应用程序相同的位置下载系统必备组件 ->确定->应用->确定
VS -> 选择Release模式 -> 右键Setup -> 生成
首次生成会出现如下报错。
这里面主要有两个问题,一个warning,一个error。我们分别来解决:
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。
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 添加安装程序包
默认情况下,该路径在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
我们可以去百度上把几个文件下载下来放在DotNetFX48目录下就可以了。
也可以去微软官方地址下载:下载 .NET Framework 4.8
进入zh-Hans
文件夹:
在文本编辑器中,打开 Package.xml 文件:
我们继续前往 .NET Framework 4.8 下载中文(简体)语言包,并放到 \Packages\DotNetFX48\zh-Hans
目录下
重新生成,error消失。
生成出来以后会多一个DotNetFX48的文件夹。
这样一来安装包就会自动安装.Net Framework环境。