我创建了一个WixLib项目和解决方案,其中包含一个片段,该片段指向一组我希望包含在多个项目中的DLLS。
但是,当我从其他解决方案中引用此wixlib时,该目录的预处理器值是随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
发布于 2013-03-13 04:32:09
以下是几个选项:
binary .wixlib -使用-bf开关切换到lit.exe,将文件嵌入到.wixlib中。bind paths -绑定路径就像搜索路径一样,只是为了找到需要在包中结束的文件。如果将File/@Source设置为相对路径(不要以X:\或仅以\开头),则将搜索未命名的绑定路径。您可以使用-bp命令行开关指定light.exe的绑定路径。或者,您可以使用命名绑定路径,它们如下所示:同样,-bp开关可以创建命名绑定路径。
bind variable -而不是使用预处理器变量(在“编译”之前解析),而使用在“绑定时”解析的变量。您可以引用绑定变量,如:!(wix.Var)。可以在命令行上设置为light.exe,也可以使用WixVariable元素在代码中设置它。我使用选项#1将.wixlibs分发给其他人(自包含),如果它只是我的东西,则使用选项#2 (二进制.wixlibs会稍微减慢构建速度)。
https://stackoverflow.com/questions/15371016
复制相似问题