如何在单个安装程序中合并Setup.exe,Setup.msi和.NetFramework先决条件?

时间:2011-09-28 21:20:25

标签: .net merge setup-project prerequisites

如何将vs2010安装项目中的安装文件和必备文件合并在一起? ..在我的发布目录中有3个文件:

setup.exe
Setup1.msi
DotNetFX40Client/dotNetFx40_Client_x86_x64.exe

我需要将这些文件放在一个简单的设置文件中。

我尝试从Windows使用IExpress工具,但它不起作用,因为“dotNetFx40_Client_x86_x64.exe”在目录中,并且该工具不支持它。

有没有办法让setup.exe在根文件夹中查找.net框架先决条件 所以我可以使用IExpress工具??如果没有,还有其他方法将这些文件合并到一个安装程序中吗?

提前致谢!! 干杯!

2 个答案:

答案 0 :(得分:1)

我使用dotNetInstaller 1.10作为构建后步骤(原始安装程序,[可选] MSI,并且所有支持包都包含在dotNetInstaller输出可执行文件中)取得了一些成功:

  

dotNetInstaller使开发人员能够根据处理器架构,用户操作系统类型和语言,以可预测的顺序定义应用程序先决条件并安装这些组件的正确版本,允许用户要从Web下载这些组件,请直接从单个打包设置,本地介质或两者安装这些组件。 dotNetInstaller功能非常丰富,可在所有已知的Windows操作系统上运行,占用空间非常小。

     

boostrapper [dotNetInstaller]不会替换InstallShield,Wise,Visual Studio安装和部署项目或Wix等工具。目标是创建一个应用程序来帮助用户安装正确的先决条件。大多数真实世界的应用程序需要安装多个组件才能正常工作,包括Windows Service Pack,Internet Explorer,MDAC或.NET Framework。这种应用程序通常称为bootstrappers。 dotNetInstaller就是这样一个引导程序。

要使“规则正确”需要一些工作,但它对我来说足够有效。

快乐的编码。

答案 1 :(得分:1)

使用NSIS安装程序 - 您可能会发现它here,有来自here的教程。以下是您的使用场景采用的语法示例:

(...)
SetOutPath "$INSTDIR\resources"
SetOverwrite off
File "setup.exe"
File "setup1.msi"
File "DotNetFX40Client/dotNetFx40_Client_x86_x64.exe"
(...)
Exec "$INSTDIR\resources\setup.exe"

然后将NSI文件编译成单个文件安装程序,其中包含一个exe文件中的所有材料 - 该exe文件的功能可以介于两者之间,只需解压缩并执行您自己的setup.exe文件和完整的自定义安装程序(在你的情况下,你不明白为什么会这么想。)