我是VS2012中使用WIX 3.7的中间WIX用户。我有多个webapps解决方案。
每个我都有一个包含MSI项目的引导程序。
我希望每个安装程序根据IIS中已安装的内容有条件地更改端口。
换句话说:默认情况下安装到端口80,如果使用80,则安装到端口81;如果使用81,则安装到82端口。
我搜索过“WIX条件更改端口”并找到以下帖子
WiX 3.7 IIS Setup
Wix to Install multiple Applications
..但它们似乎并不是我所需要的。
道歉,如果答案是盯着我,我没有看到它。
谢谢。
答案 0 :(得分:0)
显而易见的解决方案是迭代主机上的所有网站和虚拟应用程序并检查其端口号。
另一种可能性是循环遍历从80开始的所有端口并检查它是否可用。我认为System.Net.NetworkInformation namespace对于这类东西有一些有用的对象,但我对网络相关的东西没有多少经验,所以我无法真正帮助你。
或者,您可以运行“netstat -a”来获取所有活动连接并解析结果。将输出重定向到临时文本文件可能更容易:“netstat -a> c:\ temp \ netstat.txt”。请记住,netstat有点慢。
无论哪种方式,我都会将端口保留在属性中,并在找到可用数字时对其进行修改。
答案 1 :(得分:0)
如上所述,此功能目前尚不存在,但可以改进自定义操作以具有此功能。毕竟WiX toolset是开源的。
这是扩展scasched和scaexec DLL的问题,其源代码可以在src \ ca \ serverca文件夹中找到。