2017-04-21 2 views
1

Ich erstelle ein MSI mit Visual Studio 2015. Ich möchte bestimmte Dateien bereits in TARGETDIR einchecken und das Ergebnis der Suche an einen benutzerdefinierten übergeben Aktion in C#. Bisher habe ich die Suche in der Ansicht "Startbedingungen" erstellt und die Eigenschaften entsprechend festgelegt.Wert von Launch Condition (Search Target Machine) zu Custom Action in MSI übertragen

enter image description here

Dann gebe ich den Namen der Eigenschaft in Benutzerdefinierte Aktionen Darstellung als Custom Data Parameter:

/CONFIG_EXISTS = "[CONFIG_EXISTS]"

Aber wenn ich lese den Wert in meiner benutzerdefinierten Action-Code, sein Wert ist leer, aber ich erwarte einen Boolean, mindestens als String.

protected override void OnAfterInstall(IDictionary savedState){ 
    var existingConfig = Context.Parameters["CONFIG_EXISTS"]; // Always has "" as value 
    .... // Other code 

Was fehlt mir hier? Wie komme ich in meine benutzerdefinierte Aktion C# code das Ergebnis der Suchbedingung?

+0

PhilDW erklärt, warum es nicht funktioniert. Ich würde einfach "TARGETDIR" oder den vollständigen Dateipfad an die benutzerdefinierte Aktion übergeben und überprüfen, ob die Datei in der benutzerdefinierten Aktion selbst existiert. – zett42

Antwort

1

Ihre Suche schlägt fehl, da sie sehr früh in der Installation ausgeführt wird, bevor TARGETDIR initialisiert wurde (und beachten Sie, dass TARGETDIR auch durch den Dialog, der einen Installationsordner bietet, geändert werden kann). So sollen Sie Ihre Suche in Bezug auf den Standard-Windows Installer-Ordner-Eigenschaften, wie Program, Common neu definieren und so weiter, vollständige Liste hier:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=vs.85).aspx#system_folder_properties

Verwandte Themen