gpt4 book ai didi

iis-6 - WiX IIS 元数据库属性

转载 作者:行者123 更新时间:2023-12-04 06:09:55 31 4
gpt4 key购买 nike

有没有办法获得Enable32BitAppOnWin64 IIS6 的 WiX 中的元数据库属性?

我正在安装一个网络应用程序,需要运行 aspnet_regiis.exe在 IIS 设置为 32 位模式的 64 位机器上。要获取 exe 的路径,我正在使用以下内容:

<!--<?if $(var.Platform) = x64 ?>-->
<SetProperty Id="ASPNETREGIIS" Sequence="execute" Before="ConfigureIIs" Value="[NETFRAMEWORK20INSTALLROOTDIR64]aspnet_regiis.exe" />
<!--<?else ?>
<SetProperty Id="ASPNETREGIIS" Sequence="execute" Before="ConfigureIIs" Value="[NETFRAMEWORK20INSTALLROOTDIR]aspnet_regiis.exe" />
<?endif ?>-->

但是,当启用32位模式时,我不能依靠平台来获取exe的正确路径。

最佳答案

在 WiX 中没有标准方法可以做到这一点 - 您需要一个自定义操作。它应该是直接 CA,它将设置一个属性,您将在您的条件中使用该属性。这是一个示例代码,可以满足您的需求,我想:

 static bool IsIIS32bit()
{
var appPools = new DirectoryEntry("IIS://localhost/w3svc/AppPools");
int enable32Bit;

try
{
enable32Bit = (int)appPools.InvokeGet("Enable32bitAppOnWin64");
}
catch
{
enable32Bit = 0;
}

return enable32Bit == 1;
}

另请注意,在您的示例中,您使用构建时变量从两个 SetProperty 元素中进行选择。如果您有 2 个 MSI 包,每个平台一个,这将起作用。在这种情况下,您的每个 MSI 包都将具有正确设置的属性。您现在添加的额外要求(检查 IIS 位数模式)强制您将检查移至安装时。因此,您必须以某种方式重新设计您的条件逻辑。

关于iis-6 - WiX IIS 元数据库属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894612/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com