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
Wix 我可以同时释放msi和exe吗?_Wix_Wix3.6_Burn - Fatal编程技术网

Wix 我可以同时释放msi和exe吗?

Wix 我可以同时释放msi和exe吗?,wix,wix3.6,burn,Wix,Wix3.6,Burn,我想释放setup项目的setup.msi输出和刻录setup.msi的setup.BootStrapper项目的setup.exe输出。由于我想同时发布(setup.msi和setup.exe),所以安装顺序是不可预测的。如果用户先安装setup.exe,然后安装setup.msi,则可以正常工作。它提供了“删除”和“修复”选项。但如果先安装msi,然后使用exe,那么它也会安装setup.exe。所以,它显示了ARP中的两种设置。如何解决此问题?在ARP中看到两个条目表明MSI和EXE具有不

我想释放setup项目的setup.msi输出和刻录setup.msi的setup.BootStrapper项目的setup.exe输出。由于我想同时发布(setup.msi和setup.exe),所以安装顺序是不可预测的。如果用户先安装setup.exe,然后安装setup.msi,则可以正常工作。它提供了“删除”和“修复”选项。但如果先安装msi,然后使用exe,那么它也会安装setup.exe。所以,它显示了ARP中的两种设置。如何解决此问题?

在ARP中看到两个条目表明MSI和EXE具有不同的ProductCode值。你可能设定了Product@Id属性为*。通常这是正确的,但在您的场景中不是。MSI和EXE可能也有不同的PackageCode值。(Package@Id)

两种解决方案:

1) 生成EXE,然后使用后期生成事件提取MSI


2) 生成EXE和MSI两次,但将GUID生成放在生成自动化中,并将其作为变量传递到WiX生成中,这样它们都会获得相同的值。

将此语句放在MSI项目中,这将阻止MSI在ARP中创建图标

<Property Id="ARPSYSTEMCOMPONENT" Value="1" />


“我想发布setup.msi和setup.exe”-为什么?只需使用Inno setup之类的工具即可。Visual Studio 2012中正在删除Visual Studio中的Winows安装程序功能。@Ramhound-Windows安装程序不是Visual Studio的功能,而是Windows平台SDK的一部分。您所说的是VisualStudio部署项目。这是VisualStudio的一项功能,用于创建Windows Installer数据库。它们被删除是因为它们在编写适当的MSI数据库方面做得非常糟糕。海报上没有使用这个工具,让我震惊的是,你居然敢再使用一个工具,甚至对这个空间都没有基本的了解。但是Wix捆绑包不能有产品标签。那么,我如何提供产品Id呢?在这里,我使用Setup.Bootstrapper项目来刻录Setup.msi以获取Setup.exe。我还没有使用WiX的引导程序部分。不过,这些症状告诉我,你正在使用不同的ProductCode属性构建MSI。我还没有测试过,但这听起来似乎会打破海报的最终用户只安装MSI版本的情况;在这个只有MSI的情况下,应该有一个ARP图标。另外,这个答案可能会阻止任何图标出现在ARP中,从而阻止产品卸载?