2016-07-14 3 views
1

Ich habe ein WiX-Installationsprogramm, das gut funktionierte, aber es ist ein paar Monate her, seit ich daran gearbeitet habe ... also versuche ich nicht, das Installationsprogramm (auf einem rekonfigurierten Rechner) zu erstellen Jetzt kann es nicht jedes Mal gebaut werden. Ich habe versucht, alles zu vereinfachen, um zu isolieren, wo es versagt, aber ich kann immer noch nicht herausfinden, warum. Im Grunde sieht es so aus, als würde es beim Pre-Build-Prozess versagen. Ich hatte eine Länge Pre-Build Event-Befehl, aber ich habe es auf das Wesentliche vereinfacht. Hier ist mein Befehl:WiX Heat Pre-Build-Fehler

call “$(WIX)bin\heat.exe” dir "$(SolutionDir)MyProj\bin\Release" -out “$(ProjectDir)MyFiles.wxs” 

Der Fehler Ich erhalte ist:

call “C:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe” dir "C:\Users\MyName\Documents\GitHub\MyProj\bin\Release" -out “C:\Users\MyName\Documents\GitHub\MyProj\Installer\MyFiles.wxs” 
The filename, directory name, or volume label syntax is incorrect. 

Der Code erscheint mit Code 1 zu beenden, die scheint darauf hinzudeuten, dass es andernfalls einen Dateinamen oder einen Pfad zu finden .. Ich habe jedoch die Pfade überprüft, die im Ausgabeprotokoll gedruckt werden, und die Anwendung heat.exe existiert im Verzeichnis C: \ Programme (x86). Das Verzeichnis (Verzeichnis), das es zu ernten versucht, ist richtig definiert und der Ausgabeort ist ebenfalls korrekt. Also, weiß jemand, warum das scheitert?

aktualisieren

Was unglaublich seltsam ist, dass das auch zum Scheitern verurteilt Ereignisbefehl Pre-Build scheint, wenn ich den Befehl zu vereinfachen, einfach zu versuchen, die heat.exe Anwendung aufrufen (ohne andere Parameter). Ich habe versucht, mein Pre-Build-Ereignis auf den folgende Veränderung:

call “C:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe” 

Wie Sie aus dem beigefügten Bild sehen können, die heat.exe Anwendung in der Tat in dem Verzeichnis, in dem Build-Befehl angegeben befindet. Trotzdem erhalte ich immer noch einen Fehler, der besagt, dass MSBuild fehlgeschlagen ist und mit Code 1 beendet wurde. Wenn ich das Ausgabeprotokoll überprüfe, heißt das, dass die Syntax "Dateiname, Verzeichnisname oder Datenträgerbezeichnung falsch ist". Ich kann jedoch sagen, dass dieses Installationsprogramm vor ein paar Monaten ordnungsgemäß funktionierte, ohne dass die Build-Ereignisse geändert wurden ... also weiß ich wirklich nicht, warum es jetzt nicht funktionieren würde, außer dass ich meinen Computer neu konfigurieren und neu installieren musste Windows 10 kürzlich. Ich habe das neueste WiX-Toolset heruntergeladen und installiert und würde annehmen, dass dies alles ist, was benötigt wird. Aber dieser Fehler bleibt bestehen. Irgendwelche Ideen?

enter image description here

Antwort

2

Das ist wirklich dumm, aber ich glaube, Sie brauchen eine \ am Ende Ihres dir IIRC zu setzen. Ich glaube, ich bin einmal auf dasselbe Problem gestoßen. Der Fehler ist nicht besonders hilfreich.

call “$(WIX)bin\heat.exe” dir "$(SolutionDir)MyProj\bin\Release\" -out “$(ProjectDir)MyFiles.wxs” 

(Ich glaube, ich rückwärts erinnerte, und Sie müssen nicht im Verzeichnis .. sorry den nachgestellten \ haben)


Für den Fall, können Sie die Pre- nicht erhalten Veranstaltung bauen zu arbeiten, können Sie auch, wie diese Wärme nennen (erfordert die Bearbeitung der wixproj Datei)

<Target Name="BeforeBuild" /> 
    <Exec Command="&quot;$(WIX)bin\heat.exe&quot; dir &quot;$(SolutionDir)MyProj\bin\Release&quot; -out &quot;$(ProjectDir)MyFiles.wxs&quot;"/> 
</Target> 

Dies ist, wie ich Wärme nennen in einigen der Installateure ich verfasst habe. Wenn das auch nicht funktioniert, habe ich keine Ideen, warum das nicht für dich funktioniert.

+0

Leider scheint immer noch nicht das Problem auf meinem Rechner zu beheben. – andyopayne

+0

Was ist auch seltsam ist, dass das Pre-Build-Ereignis fehlschlägt, wenn ich den Befehl zu vereinfachen, einfach versuchen, die heat.exe-Anwendung zu starten. Zum Beispiel, wenn ich nur benutze: call "$ (WIX) bin \ he.exe" dann bekomme ich immer noch den gleichen Fehler wie oben. – andyopayne

+0

nach http://stackoverflow.com/questions/6755654/build-events-not-honoring-multiple-command-line-arguments sollten Sie versuchen, "call" $ (WIX) bin \ he.exe "dir" $ (SolutionDir) MyProj \ bin \ Release \ "-out" $ (ProjectDir) MyFiles.wxs "' (Leerzeichen nach "Release \", da \ entkamen der "), ob das funktioniert. –

0

Ich weiß es ist eine kleine alte Frage, aber ich habe das Problem gestellt und verbrachte Stunden, um verschiedene qoutes hier zu bemerken: “$(WIX)bin\heat.exe”. Ersetzen Sie durch gerade "$(WIX)bin\heat.exe" und genießen Sie.