Path Variable durch Setup erweitern

Tikonteroga

Erfahrenes Mitglied
Hallo,

ich habe in Visual Studion 2010 ein Setup Projekt erstellt mit dem ich eine Konsolenanwendung und verwendete Klassenbibliotheken veröffentlichen möchte.

Dabei habe ich sowohl die *.exe als auch die *.dll Dateien unter "c:\Program Files\...\bin" gespeichert. Ist dies so konform oder gibt es da andere Regeln ?

Nun würde ich gerne das von mir erstellte /bin Verzeichnis zur Path Variable hinzufügen, damit meine Konsolenanwendung als Konsolen-Befehl erkannt wird.

Wie kann ich dies innerhalb eines Visual Studion Setup Projekts realisieren ? Kann diese Erweiterung der Path-Variable bei einer Deinstallation wieder rückgängig gemacht werden ?
 

tequila slammer

Erfahrenes Mitglied
Ich würde das Bin-Verzeichnis weg lassen, da es sich ja scheinbar um eine eigenständige Applikation handelt. Daher schlage ich dir folgende Struktur vor [InstallDir]\ProductName\. Darunter installierst du dann alle Dateien und eventuelle Unterorder für Grafiken oder was auch immer.

Wegen der zweiten Anforderung muss ich mal in meinem Archiv stöbern.
 

Tikonteroga

Erfahrenes Mitglied
Hallo,

ich muss dieses Problem kurzfristig lösen. Deshalb habe ich mich entschieden zu versuchen es über eine Custom Action zu lösen.

Ich möchte also eine EXE schreiben, die einen Pfad zur Path Variable hinzufügt.

Hierfür muss ich der EXE den vom Benutzer ausgewählten Installationspfad als Argument übergeben. Weiss jemand ob es hierfür eine [VARIABLE] gibt und ob ich [VARIABLEN] überhaupt als Konsolenargument übergeben kann ?

Eine zweite möglichkeit wäre, dass ich den Pfad verwenden kann, in dem die EXE ausgeführt wird. Hier ist halt bedinung, dass sie in dem Pfad ausgeführt wird, in den ich sie installieren möchte.

Vielleicht kann mir ja jemand einen Tipp geben. Ich fange aber schon mal mit dem ausprobieren an.
 

Tikonteroga

Erfahrenes Mitglied
Hallo,

das ist mir schon klar. Mein Problem ist, dass ich nicht weiss wie ich den Installer dazu bringe, dass er den Pfad, den der Benutzer für die Installation ausgewählt hat, als Command Line Argument an meine Konsolenanwendung übergeben kann. Ich kenne den Pfad ja nicht, bevor ich das Setup kompiliere ...

Ich vermute mal, dass es hier eine VARIABLE mit z. B. dem Namen [SelectedPath] gibt. Aber ich hab noch nicht herausgefunden, ob es so eine Variable gibt und wie sie ggfs. heisst.

edit:

weil es ein Missverständniss gab, beschreibe ich nochmals mein Problem.

also ich habe jetzt mal eine Custom Action erstellt und ausgeführt. Diese wird immer unter c:/windows/system32 ausgeführt. Dies bedeutet, dass ich über Directory.GetCurrentDirectory() das Installationsverzeichnis nicht abrufen kann.

Ich müsste deshalb eine Custom Action als Konsolenanwendung erstellen und ihr über die Command Line Arguments den Pfad übergeben, den der Benutzer während der Installation ausgewählt hat. Dies kann zwar der Default-Pfad sein, muss es aber nicht sein.

Deshalb muss ich wissen, ob es in Visual Studio Setup Project eine Variable gibt, über die der Installer den Installationspfad an meine Custom Action übergibt.

Würde mich über Tipps und auch alternative Lösungswege freuen.
 
Zuletzt bearbeitet von einem Moderator:

Tikonteroga

Erfahrenes Mitglied
Hallo,

ich habe das Problem nun mit einer Konsolenanwendung als Custom Action gelöst.

Dabei hänge ich den Pfad bei der Installation an die PATH-Variable an und bei der Deinstallation entferne ich ihn aus der PATH-Variable.

Dabei übegebe ich folgende Argumente an die Konsolenanwendung.

Code:
"-Delete" "[TARGETDIR]bin"

Code:
"-Append" "[TARGETDIR]bin"
 

Neue Beiträge