我是一个在VS2012中使用Wix3.7的中级WIX用户。我有多个webapps解决方案。
对于每一个,我都有一个引导程序,包括一个MSI项目。
我希望每个安装程序根据IIS中已安装的内容有条件地更改端口。
换句话说:默认情况下安装到80端口,如果使用80则安装到81端口,如果使用81则安装到82端口,以此类推。
我已经搜索了"WIX有条件地改变端口“,找到了下面的帖子
Wix to Install multiple Applications
..but他们似乎不是我需要的。
如果答案就在我面前,而我却看不到,我很抱歉。
谢谢。
发布于 2013-06-03 08:35:33
显而易见的解决方案是遍历主机上的所有网站和虚拟应用程序,并检查它们的端口号。
另一种可能是遍历所有以80开头的端口,并检查它是否可用。我认为System.Net.NetworkInformation namespace有一些有用的对象来处理这类事情,但我对网络相关的事情没有太多的经验,所以在这方面我不能真正地帮助你。
或者,您可以运行"netstat -a“来获取所有活动连接并解析结果。将输出重定向到临时文本文件可能更容易:"netstat -a > c:\temp\netstat.txt“。请记住,netstat有点慢。
无论采用哪种方式,我都会将端口保留在一个属性中,并在找到可用的数字时对其进行修改。
发布于 2013-06-23 04:33:21
如上所述,此功能目前尚不存在,但自定义操作可以改进以具有此功能。WiX toolset毕竟是开源的。
这将是一个扩展scasched和scaexec DLL的问题,其源代码可以在src\ca\serverca文件夹中找到。
https://stackoverflow.com/questions/16803766
复制相似问题