Installation 如何在我的MSI安装程序proj中包含“MSVC Runtime.exe”,并在未安装的情况下运行它?

Installation 如何在我的MSI安装程序proj中包含“MSVC Runtime.exe”,并在未安装的情况下运行它?,installation,windows-installer,runtime,action,Installation,Windows Installer,Runtime,Action,我想在我的安装程序包中包含vcredit_x86.exe 要求: 1内置到msi文件中,不是单独的软件包,也不是单独的安装 2作为单个安装程序的一部分自动运行 3仅在尚未安装时运行 4不会在用户硬盘上留下额外的副本 5通过命令行脚本成功构建安装程序文件 6安装程序运行时必须成功 我尝试的是: 1项目-> Projt- >配置项目->构建->先决条件,然后检查创建安装程序以安装PrIEQ组件,然后检查VisualC++运行库 问题:违反除6之外的所有要求,这是没有意义的 2在installer p

我想在我的安装程序包中包含vcredit_x86.exe

要求: 1内置到msi文件中,不是单独的软件包,也不是单独的安装 2作为单个安装程序的一部分自动运行 3仅在尚未安装时运行 4不会在用户硬盘上留下额外的副本 5通过命令行脚本成功构建安装程序文件 6安装程序运行时必须成功

我尝试的是: 1项目-> Projt- >配置项目->构建->先决条件,然后检查创建安装程序以安装PrIEQ组件,然后检查VisualC++运行库

问题:违反除6之外的所有要求,这是没有意义的

2在installer pro中,显示文件系统,然后将vcredist_x86.exe添加到用户的桌面或应用程序文件夹,然后在“自定义操作”下的“安装”下,右键单击->添加自定义操作,然后从安装位置选择vcredist_x86.exe。然后选择它,然后在参数下的属性中,将/Install更改为/Install/qb!这将导致安装为无人参与安装,且没有“取消”按钮


问题:违反要求3、4和6。至于6:当运行安装程序时,它会失败,并显示消息Windows installer软件包有问题。作为安装程序一部分运行的程序未按预期完成。请与您的支持人员或软件包供应商联系。那就是我,我不知道该怎么办。

让我们从一些先决条件规则和最佳实践开始:

他们使用不同的软件包 仅在需要时安装 由EXE引导程序处理 它们中的大多数不能作为主MSI安装过程的一部分运行 其中大多数都违反了您的要求。另一种方法是使用C:\Program Files\Common Files\merge Module中的Visual Studio合并模块:

Visual Studio安装项目无法有条件地安装合并模块,因此将始终安装这些模块。其他设置编写工具允许您根据相关功能条件合并模块:

创建一个搜索,确定是否安装了合并模块 使用该搜索结果调整合并模块功能 第三种选择是只包含应用程序依赖项:

在这种情况下,只有您的应用程序才能访问运行时。此方法支持条件安装:

创建一个搜索,确定是否安装了运行时 使用该搜索来调整每个依赖项文件
让我们从一些先决条件规则和最佳实践开始:

他们使用不同的软件包 仅在需要时安装 由EXE引导程序处理 它们中的大多数不能作为主MSI安装过程的一部分运行 其中大多数都违反了您的要求。另一种方法是使用C:\Program Files\Common Files\merge Module中的Visual Studio合并模块:

Visual Studio安装项目无法有条件地安装合并模块,因此将始终安装这些模块。其他设置编写工具允许您根据相关功能条件合并模块:

创建一个搜索,确定是否安装了合并模块 使用该搜索结果调整合并模块功能 第三种选择是只包含应用程序依赖项:

在这种情况下,只有您的应用程序才能访问运行时。此方法支持条件安装:

创建一个搜索,确定是否安装了运行时 使用该搜索来调整每个依赖项文件
好的,解决方案是使用IExpress,让它执行的是一个shell脚本.bat文件

在.bat文件中,让它创建vcredist_x86文件夹并将vcredist_x86.exe移动到其中,然后运行setup.exe


这满足了我所有的原始要求。

好的,解决方案是使用IExpress,让它执行的东西是一个shell script.bat文件

在.bat文件中,让它创建vcredist_x86文件夹并将vcredist_x86.exe移动到其中,然后运行setup.exe


这符合我的所有原始要求。

忽略要求5,该部分工作。忽略要求5,该部分工作。如果我遇到了我知道我在说什么的情况,我很抱歉。我一点也不完全理解这个过程。如果我们能从我的第二次尝试中简单地解决问题6,我会很高兴。我想我只是传递了错误的命令行参数。我愿意放弃第三和第四个问题。我不知道如何创建一个搜索来确定是否安装了模块,我想我可以选择一个安装程序选项来实现这一点,因为我的要求似乎相当普遍。你的第二种方法不受支持。一个简单的解决方案是使用一个先决条件。大多数安装程序都使用它们,因此您可以放弃对简单性的要求。如果您想使用条件合并模块或文件,您需要了解安装程序如何工作以及如何配置安装项目
发射型计算机断层扫描仪。试着阅读我提到的文章。如果仍然太复杂,您可以尝试使用商业设置创作工具。它们更容易使用,但你必须购买许可证。好吧,我愿意放弃要求3和4。5是没有意义的,那是我的错,它被修复了。我希望它包含在MSI文件中的原因是,人们倾向于直接从zip文件中运行它们,而如果zip文件中有文件,它往往会崩溃。你说为了简单,也许你指的是我的开发者。实际上,我想要的是n00b用户的简单性。他们只想运行一个安装程序,然后让它安装所有东西。甚至要求新用户从自述文件中运行单独的安装程序也要求太多。是否/能否从安装程序中自动运行先决条件?关键是让它只需点击一下即可安装。使用VisualStudio MSI创建工具或python MSI creator是否有任何方法可以满足我的要求?是的,我的意思是简单。为最终用户简化复杂的安装程序通常需要一个商业安装创作工具。它需要比VisualStudio提供更多的功能。VS中的先决条件由EXE引导程序自动处理。它下载并启动它们。缺点是您有两个文件EXE和MSI。但是有一些工具可以将它们打包到SFX存档中。如果我遇到了好像我知道我在说什么的情况,我很抱歉。我一点也不完全理解这个过程。如果我们能从我的第二次尝试中简单地解决问题6,我会很高兴。我想我只是传递了错误的命令行参数。我愿意放弃第三和第四个问题。我不知道如何创建一个搜索来确定是否安装了模块,我想我可以选择一个安装程序选项来实现这一点,因为我的要求似乎相当普遍。你的第二种方法不受支持。一个简单的解决方案是使用一个先决条件。大多数安装程序都使用它们,因此您可以放弃对简单性的要求。如果要使用条件合并模块或文件,则需要了解安装程序如何工作以及如何配置安装项目。试着阅读我提到的文章。如果仍然太复杂,您可以尝试使用商业设置创作工具。它们更容易使用,但你必须购买许可证。好吧,我愿意放弃要求3和4。5是没有意义的,那是我的错,它被修复了。我希望它包含在MSI文件中的原因是,人们倾向于直接从zip文件中运行它们,而如果zip文件中有文件,它往往会崩溃。你说为了简单,也许你指的是我的开发者。实际上,我想要的是n00b用户的简单性。他们只想运行一个安装程序,然后让它安装所有东西。甚至要求新用户从自述文件中运行单独的安装程序也要求太多。是否/能否从安装程序中自动运行先决条件?关键是让它只需点击一下即可安装。使用VisualStudio MSI创建工具或python MSI creator是否有任何方法可以满足我的要求?是的,我的意思是简单。为最终用户简化复杂的安装程序通常需要一个商业安装创作工具。它需要比VisualStudio提供更多的功能。VS中的先决条件由EXE引导程序自动处理。它下载并启动它们。缺点是您有两个文件EXE和MSI。但是有一些工具可以将它们打包到SFX存档中。