首页 文章

Visual Studio 2017安装程序项目 - 包括VC 2015 Redistributable

提问于
浏览
2

我正在使用Visual Studio 2017中的“Visual Studio Installer”项目类型为我的应用程序创建安装程序 .

我希望我的安装程序使用我的应用程序安装visual c redistributable 2015 . 我已经下载了 vc_redist.x86.exe 文件,将其包含在我的项目中,我正在尝试将安装作为"install"上的自定义操作 . 我正在使用参数 /install /passive /norestart 启动 .

当我执行我的安装程序时,当它执行自定义操作时,我收到此错误:

此Windows Installer程序包存在问题 . 作为设置的一部分运行的程序没有按预期完成 . 请联系您的支持人员或包装供应商 .

我可以在命令提示符下运行 vc_redist.x86.exe /install /passive /norestart ,没有任何问题或错误 .

在我的安装过程中包含Visual C可再发行组件的任何建议或替代方法?

2 回答

  • 0

    建议:迁移到WiX Burn(引导程序/下载程序/顺控程序)以允许更多未来的灵活性和控制(下面的WiX链接) . 或者首先尝试下面的先决条件部分(选择“Visual Studio 14”条目进行安装)或尝试可用的合并模块(见下文) . 请注意合并模块的免责声明 . WiX Burn XML标记示例 . WiX刻录信息和简单标记示例 - 包含大量链接以获取更多信息 . WiX - 安装先决条件和第三方应用程序


    Logging & Mutex :日志文件说什么?从技术角度来看,通常的问题是由于技术运行时限制,您无法在自己运行的MSI设置中安装另一个MSI软件包 . 设置互斥锁以防止一次发生多个MSI安装事务 . 检查日志 . 这个可再发行组件基于MSI,我相信 - 所以当你从自定义操作中运行EXE时,你会看到这个问题 .

    Deployment Tools :Visual Studio安装程序项目非常有限,似乎大多数人会随着时间的推移从他们迁移到另一个部署工具 . Maybe have a look here - 和here is a list of tools . WiX的Burn功能(bootstrapper / downloader / sequencer)可以满足您的需求 . Also read PhilDW's answer here .

    Prerequisites :Visual Studio Installer项目确实有a prerequisites view(单击 Prerequisites... 按钮),其中可以通过 setup.exe bootstrapper定义有限数量的先决条件(不是从MSI本身开始,而是从其bootstrapper setup.exe启动 - 这意味着你不是从你自己的MSI开始安装,而是在开始安装之前 - 因此它可以正常工作) . 我不确定“ Visual Studio 14 ”的条目是否适用于您需要的运行时版本 . 我想你可以尝试一下 .

    Merge Modules :有一些合并模块可以安装Visual Studio Runtime(see here, section "Visual C++ Runtime" - 相当于页面的下方),但是这些日子看起来不合适for reasons explained here(非常重要) . 从2015年开始,Visual Studio Runtime本质上更复杂 - 并且首选EXE安装程序 . 必须阅读链接 - 请 . 为了找到相关的合并模块,请在 %ProgramFiles(x86)% 下搜索* .msm文件 - 如果您安装了Visual Studio(和/或Windows SDK) . Merge modules can be installed embedded in your own package without the need for a setup.exe launcher . 在Visual Studio中,右键单击安装程序项目 Add ,然后单击 Merge Module...

  • 0

    您无法将该可再发行组件作为自定义操作运行,因为它是基于MSI的安装,并且您无法运行递归MSI安装(您可以调用VC redist) .

    在Visual Studio安装项目中,您应该使用先决条件功能 . 在Solution Explorer中右键单击安装项目,选择Properties,然后选择Prerequisites . 这将构建一个setup.exe来安装先前条件,然后是MSI文件 . 据我所知,Microsoft Visual C 14是Visual Studio 2015运行时 .

相关问题