gpt4 book ai didi

WIX 安装程序 - 区分 32 位和 64 位

转载 作者:行者123 更新时间:2023-12-02 11:51:59 24 4
gpt4 key购买 nike

我是 wix 新手,我需要快速修复...

这是我的问题,我有一个安装程序可以安装并注册一些 dll,但我们不想在 64 位架构上安装第二个 dll。

这是我们当前安装程序文件的架构: ... ...

我尝试添加一个条件,如下所示

<Directory Id="INSTALLDIR" .....>
<Component Id="IDDLL" Guid="20E4601C-D93C-4A86-A0D9-31145D5443E6">
<File Id="common.dll" Name="common.DLL" .... SelfRegCost="1"/>
<File Id="for32bits.dll" Name="for32bits.DLL" .... SelfRegCost="1"/>
<Condition> %PROCESSOR_ARCHITECTURE="x86" </Condition>
</Component>

<Component Id="IDDLL" Guid="20E4601C-D93C-4A86-A0D9-31145D5443E6">
<File Id="common.dll" Name="common.DLL" .... SelfRegCost="1"/>
<Condition> %PROCESSOR_ARCHITECTURE~="x86" </Condition>
</Component>
</Directory>

这不起作用(重复符号错误)

我也尝试过使用 if 语句,但它看起来是在编译时处理的,所以它也不起作用:

<Directory Id="INSTALLDIR" .....>
<Component Id="IDDLL" Guid="20E4601C-D93C-4A86-A0D9-31145D5443E6">
<File Id="common.dll" Name="common.DLL" .... SelfRegCost="1"/>
<? if %PROCESSOR_ARCHITECTURE = "x86" ?>
<File Id="for32bits.dll" Name="for32bits.DLL" .... SelfRegCost="1"/>
<?endif?>
</Component>
</Directory>

有人可以告诉我如何执行此操作吗?

最佳答案

将每个架构视为其自己的组件,每个组件都有一个唯一的 GUID:

<Directory Id="INSTALLDIR" .....>
<Component Id="IDDLL32" Guid="20E4601C-D93C-4A86-A0D9-31145D5443E6">
<File Id="for32bits.dll" Name="for32bits.DLL" .... SelfRegCost="1"/>
<Condition> %PROCESSOR_ARCHITECTURE="x86" </Condition>
</Component>

<Component Id="IDDLL64" Guid="20E4601C-D93C-4A64-A0D9-31145D5443E6">
<File Id="common.dll" Name="common.DLL" .... SelfRegCost="1"/>
<Condition> %PROCESSOR_ARCHITECTURE~="x86" </Condition>
</Component>
</Directory>

关于WIX 安装程序 - 区分 32 位和 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853653/

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