我很惊讶我无法找到一个简单的答案,因为这似乎是一件很常见的事情。
我正在尝试根据正在安装的服务器的机器名称设置安装路径,因为它们具有不同的文件夹结构。
我假设我需要某种自定义操作,但是对于 WiX 来说是全新的,我很难弄清楚从哪里开始。
我想我可以为每台服务器制作单独的安装程序(因为它只有 3 个),但最好只有一个可重复使用的安装程序。
一个正确方向的点将不胜感激!谢谢。
我很惊讶我无法找到一个简单的答案,因为这似乎是一件很常见的事情。
我正在尝试根据正在安装的服务器的机器名称设置安装路径,因为它们具有不同的文件夹结构。
我假设我需要某种自定义操作,但是对于 WiX 来说是全新的,我很难弄清楚从哪里开始。
我想我可以为每台服务器制作单独的安装程序(因为它只有 3 个),但最好只有一个可重复使用的安装程序。
一个正确方向的点将不胜感激!谢谢。
假设您在 WiX 创作中具有以下目录结构:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLLOCATION" Name="nametochange">
<!-- some component -->
<Directory Id="BinDir" Name="bin">
<!-- another component -->
</Directory>
</Directory>
</Directory>
INSTALLLOCATION
文件夹名称应根据机器名称而有所不同。您可以编写一个SetDirectory
元素来将目录路径设置为所需的值(它是下面的硬代码,只是为了展示这个想法):
<SetDirectory Id="INSTALLLOCATION" Value="C:\inetpub\wwwroot\[%COMPUTERNAME]" />
该SetDirectory
元素正确地安排了基础自定义操作。请注意在 WiX: 中引用环境变量的方式[%COMPUTERNAME]
。如果您以 Windows Installer 4.0+ 为目标,则可以依赖特殊属性ComputerName
.
更新:根据具体要求,您可以进一步实验:
<SetDirectory Id="INSTALLLOCATION" Value="C:\inetpub\wwwroot\FolderA">ComputerName = Server1</SetDirectory>
<SetDirectory Id="INSTALLLOCATION" Value="C:\inetpub\wwwroot\FolderB">ComputerName = Server2</SetDirectory>
<SetDirectory Id="INSTALLLOCATION" Value="C:\inetpub\wwwroot\FolderC">ComputerName = Server3</SetDirectory>
等等