如何在 post 构建事件中执行单独的 .msi

How to execute seperate .msi in post build event

我在 Visual Studio Community 2015 中使用 Visual Studio 安装程序安装项目来安装我的程序。但是,我的程序依赖于 SqlLocalDB。我有 SqlLocalDB.msi,我想在我的程序安装后安装它。所以,我将它打包在我的安装程序中,放入我的程序所在的文件夹中。然后,在 post 构建事件中我有

msiexec /a "c:\Program Files(x86)\TowerSearch\SqlLocalDB.msi"

这是安装程序安装到的目录。但是,当我尝试构建项目时,此操作失败并出现错误代码 1619 和未指定的错误。我还尝试了一些其他变体,但无济于事。我可能正在做一些愚蠢的事情使它不起作用,但我不知道是什么。那么,如果可能的话,您将如何安装一个单独的 .msi 文件?

您可能需要在此处详细说明您的目标。

如果您使用的是开发系统,则 Visual Studio 构建过程会调用构建后事件。但是,您不能两次安装相同的 MSI,因此不清楚您要做什么。你的开发系统上已经有 SQL,所以你不能再次安装它。错误 1619 表示找不到该文件。

如果这是为客户端系统(而不是您的开发系统)设计的,那么构建后事件不适用 - 它们是开发的东西,而不是部署方法。安装像 SQL 这样的先决条件的方法是将它放在安装程序的先决条件中,它会在其中生成一个 setup.exe 来安装这些先决条件,然后安装 MSI 文件。