Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Custom Actions und ini-Dateien


2 replies to this topic

peter_silie

peter_silie
  • Full Members
  • 2 posts

Posted 06 April 2011 - 11:37

Moin MOin,

ich arbeite gerade einen einem Setup-Projekt in MS Visual Studio 2003 und stehe vor einem Problem, dass ich auch nach langen hinundher-Probieren nicht lösen kann, da mir das Fachwissen fehlt. Aus dem Grunde wende ich mich an euch, in der Hoffnung mein Problem lösen zu können:

Anforderung:

Nach der Installation soll im Windows Ordner einen ini-Datei angelegt werden. Diese soll mit speziellen Einträgen gefüllt werden. Installation darf nur von Admin durchgeführt werden.

aktueller Stand:
Nach der Installation wird die .exe aufgerufen (custom action: commit). Diese versucht die ini-Datei anzulegen und zu befüllen. Läuft unter winXP. Unter windows 7 nicht!

Problem:
Nach der bedingten (Privileged) Installation wird die exe mit einem Parameter aufgerufen (commit samt Arguments und Condition Privileged). Wenn die .exe ausgeführt wird, besteht allerdings das Problem, dass diese nicht mit Admin-Rechten bestückt ist. Ursächliches Problem: Privileged gilt nur für den Aufruf. Somit kann leider die entsprechende ini-Datei nicht im windows-Verzeichnis angelegt werden.

Daher meine Frage:

besteht die Möglichkeit, dass das msi-Paket die von mir gewünschte ini im windows-Verzeichnis anlegt? muss nur angelegt werden... die bearbeitung der Datei selber schafft die Software wiederrum...

Vielen Dank im Vorraus für eure Antworten..

Peter

peter_silie

peter_silie
  • Full Members
  • 2 posts

Posted 06 April 2011 - 14:25

so... ich habe mich nun dafür entschieden, die ini-Datei vom Installer im Windowsordner anzulegen.

Gibt es hier eine Eigenschaft, dass die Datei, falls bereits vorhanden nicht kopiert/installiert wird?

Danke

Peter

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 08 April 2011 - 18:10

Installierst du die INI-Datei (als Datei) oder verwendest due die INI-Tabelle (ist die in Visual Studio verfügbar?) um die Einträge anzulegen?

Im ersten Fall kannst du angeben, dass vorhandene Dateien nie überschrieben werden sollen. Aber wenn der Anwender die Datei bearbeitet hat wird sie sowieso nicht überschrieben. Evtl. solltest du sie zusätzlich als "permanent" markieren, damit sie bei der Deinstalaltion (evtl. auch als Teil eines Major Upgrade) nicht gelöscht wird.

Im zweiten Fall (falls es in VS einen INI-Editor gibt) kann man angeben, dass der Eintrag nur angelegt werden soll, wenn er noch nicht existiert.

Dass es mit der EXE nicht geklappt hat, liegt vermutlich daran, dass VS 2003 das msidbCustomActionTypeNoImpersonate nicht gesetzt hat. In neueren Versionen ist das glaube ich behoben.