2016-11-07 5 views
0

Verwenden Sie Windows Server Maschine 2012 R2 Maschine, um ein Setup (exe) und Wix v3.10 zu nehmen.Wie kann ich das Setup-Crash-Problem lösen, wenn ich es starte?

Wenn ich die Brenn-ausführbare Datei von Windows Server 2012 R2-Maschine in einem beliebigen Computer ausführen, stürzte Setup mit dem Fehler als "System.IO.DirectoryNotFound" nicht gefunden.

Bei weiterer Untersuchung dieses Problems trat diese Ausnahme beim Abrufen von Dateien, die sich auf den Brennvorgang und den Bootstrapper bezogen (.ba-Ordner vom temporären Speicherort), mithilfe von WixBundleProviderkey auf. Da der .ba-Ordner in einem anderen Namen (Gilde (Ordnername)) anstelle des erforderlichen Verzeichnisses im temporären Speicherort vorhanden war, trat dieses Problem nur auf, wenn das Setup von der Windows Server 2012 R2-Maschine ausgeführt wurde und dies nicht erfolgte einige andere Windows-Rechner, wenn wir nahmen Setup von ihm

tatsächliche Pfad, in dem .BA Ordner vorhanden ist:. C: \ Benutzer \ Server \ AppData \ Local \ Temp \ 2 {32DB2298-79D9-4816-9BD6-ABA4271CCA2F }

Anwendung Suche Pfad .BA Ordner: C: \ Benutzer \ Server \ AppData \ Local \ Temp \ 2 {36823a7e-b6d2-4db1-b0d1-212cdf7bd669} \

Könnte uns jemand bitte wissen lassen, warum dieses Problem in Windows-Server-Maschine auftritt?

Was ist die Hauptfunktion von WixBundleProviderkey?

Unten ist mein Code, in das Problem konfrontiert ist, während das Setup

Zeichenfolge startet baFolder = System.IO.Path.GetTempPath() + SyncBA.Model.Bootstrapper.Engine.StringVariables [ "WixBundleProviderKey"] + „\ ";

Antwort

1

Dies ist auf die in v3.10.3 hinzugefügten Sicherheitsmaßnahmen zurückzuführen. Dieser temporäre Ordner wird nicht mehr mit der ID des Pakets erstellt, sondern eine zufällige GUID. Sie sollten den Standort Ihres BA auf andere Weise erhalten, z. B. AppDomain.CurrentDomain.BaseDirectory.

Verwandte Themen