WIX2迁移至WIX3后添加WixUIExtension仍出现未解析符号问题
解决Wix 2迁移到Wix 3后的未解析符号问题
我刚好处理过类似的Wix版本迁移问题,咱们一步步来搞定:
先理清第一个问题的根源:
Wix 3把原本内置的标准对话框(比如Dialog.CancelDlg、Dialog.BrowseDlg)拆分到了单独的WixUIExtension扩展中,所以你添加这个引用的思路是完全正确的,这一步也确实解决了对话框符号未解析的问题。搞定
WixAppFolder等属性未解析的问题:- 这些属性实际上是定义在
WixUtilExtension扩展里的,所以你需要额外添加对这个扩展的引用。- 如果用命令行
candle编译,记得加上参数:-ext WixUtilExtension - 如果是Visual Studio的Wix项目,右键项目→添加→引用,找到
WixUtilExtension并勾选即可。
- 如果用命令行
- 这些属性实际上是定义在
额外验证:命名空间是否正确声明
在你的主wxs文件的Wix根元素里,要确保声明了Util扩展的命名空间,避免属性识别异常:<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">大部分场景下Wix会自动识别
WixAppFolder这类属性,不过正确声明命名空间能避免很多隐性问题。补充小提示:
Wix 3相比Wix 2做了大量模块化拆分,很多原本内置的功能都分到了不同的扩展包里——比如UI相关在WixUIExtension、工具类功能在WixUtilExtension、.NET框架检测在WixNetFxExtension等,后续迁移再遇到未解析符号,优先检查对应的扩展是否已经引用。
内容的提问来源于stack exchange,提问作者Alexey Starinsky
相关产品推荐
相关产品推荐

