Visual Studio安装程序项目中的其他安装程序

我正在尝试为我的项目创建一个安装。 我正在使用MS Access DataBase,并且需要使用Access DataBase Engine。 如果我从这里下载该引擎https://www.microsoft.com/en-us/download/details.aspx?id=54920并安装它,程序可以正常工作。

如何将该安装添加到我的安装中?

我使用的是Visual Studio 2015,C#和OLEDb。

简短版本从本质上讲,您将需要一个部署工具列出主要部署工具的视图 。 也许列表视图是最简单的概述? (范围感)。 下面有更多详细信息(也有太多链接)。


详细信息Microsoft Visual Studio 2017 Installer Projects提供了一些必备function,但我不熟悉其中的详细信息。 我发现这个项目类型不适合实际部署工作,原因很多(缺少function和一些奇怪的实现)。 更多相关信息 – 需要考虑的几个具体问题 。

一些商业工具将为您提供特殊function,以帮助您快速(呃)。 我validation了Advanced Installer 可以做到这一点 ( here is a great gateway Advanced Installer所有东西here is a great gateway 。 有些免费function可用)。 我假设Installshield也可以这样做(当然对于其他运行时,没有validation这个特定的运行时)。 通常,它将由setup.exe bootstrapper / chainer处理,嵌入所有运行时以及您自己的MSI文件。

在其他工具中 ,您必须自己完成,通过找出命令行以及如何处理错误条件。 这里有一些提示(未经我测试 – 谷歌扫描会给你更多): https : //www.itninja.com/software/microsoft/access-runtime/2016-1

访问accessruntime_4288-1001_x64_en-us.exe /?获取更多命令行信息 :

命令行访问2016

WiX是免费和开源的 – 如果您不了解MSI,则会有相对沉重的学习曲线,并且包含称为“ Burn ”的引导程序function。 以下是文档: 如何:使用刻录安装.NET Framework (首先阅读“步骤1”中的“构建安装包捆绑包”说明)。 真实世界的Burn样本 。 还有一些示例源标记 。

一些开发人员推荐使用dotnetinstaller引导程序 。 不是我非常了解的东西。 它只是一个引导程序。 按顺序运行。

如果您正在进行内部部署或临时部署,即使是批处理文件也可以完成我认为的工作,但如果您为实现大规模和通用部署的实际产品而这样做,我会非常担心。 如果有一件事我们讨厌作为部署专家,我会说它是嵌入在包中的批处理文件 。 批处理文件(和脚本)是系统管理员工具,而不是常规部署工具。


一些较旧的链接:

  • 可执行文件到MSI安装程序
  • 安装软件程序如何提取文件?
  • 使用Visual Studio 2012创建MSI或安装项目
  • 如何创建一个自动安装应用程序的所有必备程序的安装程序
  • Windows服务未显示在控制面板下添加删除程序
  • 如何创建一个自动安装应用程序的所有必备程序的安装程序
  • Wix – 如何在没有UI的情况下运行/安装应用程序

Visual Studio安装项目在项目的属性中有一个Prerequisites选项。 这允许您从标准先决条件列表中进行选择,并生成将安装先决条件然后安装MSI的setup.exe。 Access Runtime不会出现在更高版本的安装项目中,因为(我假设)Access 2013在2018年结束了主流支持。将此自己的先决条件添加到此机制的方法是使用Bootstrap Manifest Generator,它可能仍然可用但不是有据可查:

https://msdn.microsoft.com/en-us/library/ms165429.aspx

除此之外,我建议你学习如何构建一个WiX Burn bootstrapper可执行文件,它将安装Access Runtime,然后安装你的MSI(如果你需要,你还可以使用Visual Studio构建)。 如果你搜索它,你会发现这种事情:

WiX – 安装先决条件和第三方应用程序

https://www.c-sharpcorner.com/UploadFile/cb88b2/installing-prerequisites-using-wix-bootstrapper-project-and/

这些将解释如何构建Xml以检查是否已安装Access Runtime以及用于安装它的命令。 这是一个比Bootstrap Manifest Generator更好的选择。