2017-06-23 11 views
0

Ich habe FehlerWIX unzulässiges Zeichen in Pfad

erlaubtes Zeichen in Pfad

wenn ich versuche, meine WIX.Setup zu bauen. Ich könnte das Problem bei folgenden Komponenten finden:

<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> 

Wenn ich sie entferne, funktioniert es.

<?define Path.Cefsharp.Commonx64 =    "$(var.Path.Packages)\CefSharp.Common.55.0.0\CefSharp\x64 ?> 

Wo ist das illegale Zeichen?

Antwort

2

Zitate sind nur manchmal erforderlich-Syntax für den Wert in einem preprocessor definieren.

Da Sie das nachfolgende Anführungszeichen, das Sie beabsichtigt haben, verpassen, wird das führende als Teil des Werts betrachtet!

<?define Path.Cefsharp.Commonx64 = 
    "$(var.Path.Packages)\CefSharp.Common.55.0.0\CefSharp\x64 ?> 

Ich benutzte den candle -p Schalter, das herauszufinden.

+0

Ich werde versuchen am Montag vielen Dank Herr – Peter

+0

Vielen Dank - es ist mein erstes Mal die Einrichtung der vollständigen 'WIX' Zeug - war auf der Suche nach etwas wie 'Kerze -p' – Peter

+0

Auch wenn Sie MSBuild oder Visual Studio oben verwenden Dafür werden die WiX-Kommandozeilen-Tools verwendet. (Wenn Sie möchten, können Sie die Protokolldatei in MSBuild oder VS aufklappen.) Sehen Sie sich das [WiX Toolset-Diagramm] (https://github.com/wixtoolset/wix3/blob/develop/src/chm/) an. files/content/WiX_Toolset_Diagram.png) (das ist ein Link zur Quelle; es scheint in der Website-Version der Dokumentation kaputt zu sein). –

1

ich nicht sehr viel Erfahrung mit WIX Syntax, aber according to the documentation das File Element muss ein Ausrufezeichen, wenn Nutzlast über dem Namen Binder Pfade zu identifizieren:

<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> 

hoffe, das hilft!

Source - WIX docs (general)

+0

Vielen Dank cosinepenguin für Ihre Antwort. Aber das '$' Zeichen funktioniert in allen anderen XML-Dateien. Es ist nur etwas über diesen Pfad. Wenn ich es in eine andere Variable ändere, funktioniert alles gut, außer dass es die Dateien offensichtlich nicht findet. – Peter

+1

Ich werde es trotzdem am Montag versuchen. Ich freue mich darauf, es auszuprobieren. – Peter

+0

Interessant! In diesem Fall würde die Quelle nicht einfach als 'Source =" $ (Path.Cefsharp.Commonx64) \ CefSharp.dll "'? Brauchen Sie die 'var.'? Wenn Sie es am Montag versuchen, schreiben Sie Ihre Antwort! Ich bin eigentlich sehr neugierig! – cosinepenguin

Verwandte Themen