Hi,
ich starte die Setup.msi und möchte deren Ort herausfinden? Habe es mit Workingdir und Currentdir probiert, da kommt aber ein Systemverzeichnis in welchen das Setup entpackt wurde.
Ich verstehe deine Frage nicht ganz. Du startest das Setup über die "Setup.msi"? Und willst nun den Zielort rausfinden? Wiejetzt?
Falls du das Ziel-Build-Verzeichnis des Setup Projekts meinst, schaue beim Builden unten im "Output" Fensterchen. Dort erscheint nach erfolgreichem Buildvorgang der Pfad. (Meist der Debug/Release Ordner des Setup Projekts)
SourceDir Property (man beachte die Schreibweise, nur InstallUISequence!)
Du kannst dir die jeweils gesetzten Properties auch ausgeben lassen:
msiexec /i Setup.msi /l*v Setup.log
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Das Problem ist, das Windows das Setup nimmt und lokal kopiert (C:\Windows\SysWOW64) + dort entpackt.
Ich will aber den Pfad der Setup.msi haben, die ich angeklickt habe!
Hallo ducky_boy,
Ich will aber den Pfad der Setup.msi haben, die ich angeklickt habe!
wozu brauchst du das überhaupt?
herbivore
SourceDir ist der Pfad den du suchst.
Was nutzt du zur Setup-Erstellung(VS, WIX, usw) und wie greifst du auf die Property zu?
wozu brauchst du das überhaupt?
Zum Beispiel macht es sinn, dass man eine Konfigurationsdatei oder Lizenzdatei in das selbe Verzeichnis wie die Setup.msi legt und diese Datei mit kopiert wird bzw. über die Lizenzdatei die Feature-Auswahl einschränkt.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
kleines_eichhoernchen hat völlig recht ... das sind meine Absichten!
Kannst du mir mal zeigen wie ich an das Session Object herankommen? Bekomme das nicht hin!?
Ich benutze VS2008
Ich erstelle meine Setups ohne VS.
Schau mal ob dir How to Pass Command Line Arguments to MSI Installer Custom Actions weiterhilft.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Ich hab es jetzt erst mal vorübergehend so gemacht, das sie als Parameter beim aufruf mitgebe also:
/sourcedir="[SOURCEDIR]\"
Muss erst noch herausfinden, wie ich in C# richtig auf die Session zugreifen kann. Die gibt man dann in der Custom Action mit. In dieser Session kann man dann auch die SourceDir auslesen.
versuche in deiner CustomAction die Methode Assembly.GetExecutingAssembly().Location aufzurufen.
Hallo idzik,
das liefert aus den schon weiter oben besprochen Gründen nicht das gewünschte Verzeichnis.
herbivore
ducky_boy, hast du an einem launcher.exe gedacht? der deine .msi startet? hier kannst du die Assembly.GetExecutingAssembly() aufrufen. Immerhin es scheint mir freundlicher als ein parameter /sourceDir zu sein. Nachteil - wenn du kein .NET installiert hast, muss du einen Win32 Launcher.exe erstellen.