Laden...

Ort von der Setup.msi herausfinden

Erstellt von ducky_boy vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.093 Views
ducky_boy Themenstarter:in
28 Beiträge seit 2009
vor 13 Jahren
Ort von der Setup.msi herausfinden

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.

92 Beiträge seit 2006
vor 13 Jahren

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)

3.971 Beiträge seit 2006
vor 13 Jahren

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...

ducky_boy Themenstarter:in
28 Beiträge seit 2009
vor 13 Jahren

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!

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo ducky_boy,

Ich will aber den Pfad der Setup.msi haben, die ich angeklickt habe!

wozu brauchst du das überhaupt?

herbivore

3.971 Beiträge seit 2006
vor 13 Jahren

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...

ducky_boy Themenstarter:in
28 Beiträge seit 2009
vor 13 Jahren

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

3.971 Beiträge seit 2006
vor 13 Jahren

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...

ducky_boy Themenstarter:in
28 Beiträge seit 2009
vor 13 Jahren

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.

99 Beiträge seit 2006
vor 13 Jahren

versuche in deiner CustomAction die Methode Assembly.GetExecutingAssembly().Location aufzurufen.

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo idzik,

das liefert aus den schon weiter oben besprochen Gründen nicht das gewünschte Verzeichnis.

herbivore

99 Beiträge seit 2006
vor 13 Jahren

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.