我有错误
路径中的非法字符
当我尝试构建我的WIX.Setup时。我可以在以下组件中找到问题
<Component Id="C.Cef.Common.BrowserSubprocess.Core" Guid="{5603fa71-5739-4513-9cba-793a6f6d29ce}">
<File Id="CefSharp.BrowserSubprocess.Core.dll" Source="$(var.Path.Cefsharp.Commonx64)\CefSharp.BrowserSubprocess.Core.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="C.Cef.Common.BrowserSubprocessexe" Guid="{5b0b77cd-7787-4c8a-b388-8042d179a788}">
<File Id="CefSharp.BrowserSubprocess.exe" Source="$(var.Path.Cefsharp.Commonx64)\CefSharp.BrowserSubprocess.exe" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="C.Cef.Common.Core" Guid="{98a016a2-50cb-4fdb-ae50-46f7f35ac270}">
<File Id="CefSharp.Core.dll" Source="$(var.Path.Cefsharp.Commonx64)\CefSharp.Core.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="C.Cef.Common.CefSharp" Guid="{a181bbed-fc28-41c8-868d-8c1dd62dbc46}">
<File Id="CefSharp.dll" Source="$(var.Path.Cefsharp.Commonx64)\CefSharp.dll" KeyPath="yes" Checksum="yes"/>
</Component>
如果我删除它们就可以了。
<?define Path.Cefsharp.Commonx64 = "$(var.Path.Packages)\CefSharp.Common.55.0.0\CefSharp\x64 ?>
非法角色在哪里?
答案 0 :(得分:3)
引号只是preprocessor定义中值的有时必需语法。
由于您缺少必须具有的尾随引用,因此前导引号被认为是该值的一部分!
<?define Path.Cefsharp.Commonx64 =
"$(var.Path.Packages)\CefSharp.Common.55.0.0\CefSharp\x64 ?>
我使用candle -p
开关来查找它。
答案 1 :(得分:1)
我对WIX语法没有太多经验,但according to the documentation在通过命名的binder路径识别有效负载时,File元素需要一个感叹号:
<Component Id="C.Cef.Common.BrowserSubprocess.Core" Guid="{5603fa71-5739-4513-9cba-793a6f6d29ce}">
<File Id="CefSharp.BrowserSubprocess.Core.dll" Source="!(var.Path.Cefsharp.Commonx64)\CefSharp.BrowserSubprocess.Core.dll" KeyPath="yes" Checksum="yes"/>
</Component>
希望这有帮助!