Frage

C # 2005

Ich bin mit einer Installer-Klasse, wie ich eine benutzerdefinierte Aktion benötigen, die in einer XML-Konfigurationsdatei gelesen werden.

So, wenn der Benutzer doppelklickt das Setup, wird es eine config.xml-Datei im selben Ordner sein. Ich möchte in dieser config.xml-Datei lesen Ereignis auf installieren. Der Ordner enthält setup.exe und config.xml

Es kann jedoch nicht die Datei config.xml finden, da es für sie unter C sucht: \ Windows \ System32. Ich fand dies aus, indem applicationstartup.path verwenden. Jedoch wird die Setup-Ordner das Setup und config.xml enthält befindet sich auf meinem Desktop.

Ich dachte, es für sie in dem aktuellen Standort suchen. Welche der Setup-Ordner sein würde.

Die Schwierigkeit besteht darin, dass mein Setup-Ordner aus dem Internet heruntergeladen werden und jeder Benutzer sie herunterladen können und entpacken Sie es irgendwo auf ihrem Computer.

Hier ist mein Code-Schnipsel für das bei der Installation Ereignis.

Vielen Dank für jede Beratung

protected override void OnAfterInstall(System.Collections.IDictionary savedState)
    {
        DataTable dt = new DataTable();
        MessageBox.Show(Application.StartupPath.ToString());
        dt.ReadXml("config.xml");

        MessageBox.Show(base.Context.Parameters["CAT_TargetDir"].ToString());
    } 
War es hilfreich?

Lösung 3

Ich bin es geschafft, dies zu lösen.

Die Antwort war nur eine einfache bat-Datei zu schreiben, die die ganze Arbeit für mich tun werden. Dann wird die Bat-Datei der Setup aufrufen und die Anwendung installieren.

Danke,

Andere Tipps

Unter der Annahme, Sie sprechen über ein MSI, ist nicht, dass die OriginalDatabase Eigentum?

Angenommen, Sie sind nicht CAT_TargetDir statt TARGETDIR Vertippen Sie folgende Behelfslösung können: setzen einen Custom und übergeben TARGETDIR als Argument für Ihre benutzerdefinierte Aktion. Es ist nicht die eleganteste Lösung, aber es sollte ziemlich einfach arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top