Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WixSetup-检查先决条件&;添加可再发行的?_Wix - Fatal编程技术网

WixSetup-检查先决条件&;添加可再发行的?

WixSetup-检查先决条件&;添加可再发行的?,wix,Wix,我正在为我的应用程序使用WixSetup项目,它成功地生成msi作为输出。现在,我还要补充一些细节- 问题1:安装前检查先决条件: 作为先决条件的一部分,我必须检查product.wxs文件中的几个条件(类似于.NET Framework 4.0) 已安装或NETFRAMEWORK40FULL 如何使用注册表项检查在product.wxs文件中添加先决条件 问题2:在msi中添加可再发行软件包 此外,我需要在msi中添加几个可再发行的项目,这些项目将随msi一起提供。 如何在msi中添加这些

我正在为我的应用程序使用WixSetup项目,它成功地生成msi作为输出。现在,我还要补充一些细节-

问题1:安装前检查先决条件: 作为先决条件的一部分,我必须检查product.wxs文件中的几个条件(类似于.NET Framework 4.0)


已安装或NETFRAMEWORK40FULL
如何使用注册表项检查在product.wxs文件中添加先决条件

问题2:在msi中添加可再发行软件包 此外,我需要在msi中添加几个可再发行的项目,这些项目将随msi一起提供。
如何在msi中添加这些软件包?

关于第一点,WiX文档涵盖了这个确切的场景。看


关于第二个问题,这通常是通过创建一个引导程序包来完成的,它是一个单独的wix项目,按顺序运行一系列.msi文件。引导程序项目通常很容易设置。

没有引导程序包,这可能吗?直接在msi安装项目中?您可以启动一些自定义操作,但这样做会完全破坏安装程序的事务性,因为您现在正在进行进程外工作,无法从安装/更新/卸载失败中安全恢复。如果你想自动安装依赖MSI,正确的方法是使用引导程序,这很容易。Patrick-我已经接受了你的答案。不过,我还有一个问题,与注册表类似,我如何检查安装计算机上特定位置(例如%SystemRoot%\System32\inetsrv)上的dll?这取决于您想对这些文件做什么-如果您想做的只是查看它们是否存在,我很想编写一个c#自定义操作并在安装序列的早期运行它。如果你想用iis做一些事情,有一个wix扩展,它可以满足你的需要。扩展dll位于%wix%/bin文件夹中。
<PropertyRef Id="NETFRAMEWORK40FULL"/>
<Condition Message="[ProductName] requires .NET Framework 4.0.">Installed OR NETFRAMEWORK40FULL</Condition>