gpt4 book ai didi

wix - 尝试更改引用解决方案中的 WixLib 预处理器变量

转载 作者:行者123 更新时间:2023-12-01 12:46:26 29 4
gpt4 key购买 nike

我创建了一个 WixLib 项目和解决方案,其中包含一个指向一组我想包含在多个项目中的 DLLS 的片段。

但是,当我从其他解决方案引用此 wixlib 时,dll 所在目录的预处理器值随 wixlib 一起提供。我想覆盖或更新此值。

我的 Wixlib 看起来像这样:

<Fragment>
<ComponentGroup Id="CG.FarPointComponents">
<Component Id="cmpBBC3777DD58F5E2AE4704D66EF87C105" Directory="INSTALLDIR"
Guid="6CB60019-D122-41F6-8009-C41B07BCE5C3">
<File Id="filC126C8C2BFE502E045C17A812B8A907D" KeyPath="yes"
Source="$(var.FarPointDir)\FarPoint.CalcEngine.dll" />
</Component>
</ComponentGroup>
</Fragment>

我想在其他解决方案中为 var.FarPointDir 指定另一个目录,我该怎么办?我正在使用 wix 3.6

最佳答案

几个选项:

  1. 创建一个 binary .wixlib - 使用 -bf 切换到 lit.exe 将文件嵌入到 .wixlib .这样 .wixlib 就完全独立了,尽管它会更大。

  2. 使用绑定(bind)路径 - 绑定(bind)路径类似于搜索路径,但用于查找需要在包中结束的文件。如果您使 File/@Source 相对(不要以 X:\ 或只是 \ 开头),那么将搜索未命名的绑定(bind)路径.您可以使用 -bp 命令行开关指定 light.exe 的绑定(bind)路径。或者你可以使用命名绑定(bind)路径,它们看起来像这样:

    <File Source='!(bindpath.Name)\FarPoint.CalcEngine.dll' />

    同样,-bp 开关可以创建命名绑定(bind)路径。

  3. 使用绑定(bind)变量 - 不使用预处理器变量(在“编译”之前解析),而是使用在“绑定(bind)时”解析的变量。您可以引用绑定(bind)变量,例如:!(wix.Var)。可以在命令行上将其设置为 light.exe,或者您可以使用 WixVariable 元素在代码中进行设置。

我使用选项 #1 将 .wixlibs 分发给其他人(自包含),如果它只是我的东西,则使用选项 #2(二进制 .wixlibs 会稍微减慢构建速度)。

关于wix - 尝试更改引用解决方案中的 WixLib 预处理器变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15371016/

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