我在其中一台构建服务器上遇到此错误。所有其他服务器都可以正常构建。有什么想法可能是错的吗?
5 回答
它是一个wix 3.6问题。在这里找到了解决方案。您需要做的就是在您的 wix 项目中添加以下属性<EnableProjectHarvesting>True</EnableProjectHarvesting>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<EnableProjectHarvesting>True</EnableProjectHarvesting>
我也遇到了这个错误,这似乎是创建新设置时从 Wix 自动生成的新事物。当我从 3.5 升级到 3.6 时,Wix 不喜欢它,我只是将其删除。
就我而言,我应该使用ComponentRef
而不是ComponentGroupRef
从 升级Wix 3.5
到 后Wix 3.8
,我们遇到了同样的问题。但是,我们不希望项目收获,因此设置EnableProjectHarvesting
为 true 不是一个好的解决方案。所以为了解决这个问题,我们不得不改变几件事:
在文件Product.wxs
中,我们完全删除了以下行(从属性中<Feature>
):
<ComponentGroupRef Id="Product.Generated" />
之后,在我们的 中.wixproj
,我们将 更新LinkerBaseInputPaths
为DefineConstants
.
所以这意味着改变
<LinkerBaseInputPaths>%(ProjectReference.RootDir)%(ProjectReference.Directory)obj\$(Configuration)\Package\PackageTmp\</LinkerBaseInputPaths>
到(并且请注意添加BasePath=%
)
<DefineConstants>BasePath=%(ProjectReference.RootDir)%(ProjectReference.Directory)obj\$(Configuration)\Package\PackageTmp\</DefineConstants>
最后我们添加了
PreprocessorVariable="var.BasePath"
到我们的HeatDirectory
属性(就在我们在上一步中修改的 PropertyGroup 的下方)。
就我而言,我得到了相同的错误号:
file_name.wxs(38): error LGHT0094: Unresolved reference to symbol 'WixComponentGroup:Name_of_the_ComponentGroup
这是因为我已将 ComponentGroup 移动到不同的文件,并且调用candle.exe 的构建脚本(在我的情况下为 cmake,也许您使用 ant)尚未更新以包含现在包含 ComponentGroup 的 .wxs 文件。
更新 cmake 脚本以包含新文件修复了错误。并且错误消息实际上是有意义的,因为这是一个未解决的参考。