Frage

Ich habe eine Immobilie zu, ob Verknüpfungen zu installieren, die über Kommandozeilenargumente übergeben werden müssen. Die Bedingungen scheinen zu arbeiten, wenn ich die Eigenschaften in der wxs-Datei festgelegt, aber sie scheinen zu ignorieren, wenn sie über die Befehlszeile zu setzen. Aus dem Protokoll sehe ich, dass sie eingestellt werden:

MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLSTARTUPSHORTCUT property. Its current value is '0'. Its new value: '1'.
MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLSTARTMENUSHORTCUT property. Its current value is '0'. Its new value: '1'.
MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLDESKTOPSHORTCUT property. Its current value is '0'. Its new value: '1'.

Sie sind jedoch die Verknüpfungen nicht installiert werden.

Auch scheint es, wie da sie müssen in ihrer eigenen Komponente in der Lage sein, auf sie zu Bedingungen, können sie nicht mehr beworben Verknüpfungen sein. Wie würden Sie beworbenen Abkürzungen bedingt installiert werden?

Aktuelle Kurzcode:

<Property Id="INSTALLSTARTMENUSHORTCUT" Value="0"/>
...
<Component Id="StartMenuShortcut" Guid="MY-GUID">
  <Condition>INSTALLSTARTMENUSHORTCUT</Condition>
  <Shortcut Id="StartMenuServerShortcut"
    Directory="ProgramMenuDir"
    Name="Application Name" WorkingDirectory="INSTALLDIR" Advertise="no"
    Target="[!FileEXE]"
    Icon="Icon.ico" />
</Component>

Und für andere Verknüpfungen wiederholt

Edit:

Der Versuch, was Sacha vorgeschlagen und das Hinzufügen der folgenden:

<Property Id="INSTALLSTARTUPSHORTCUT" Value="0" Secure="yes"/>
<Property Id="INSTALLDESKTOPSHORTCUT" Value="0" Secure="yes"/>
<Property Id="INSTALLSTARTMENUSHORTCUT" Value="0" Secure="yes"/>

Nun installiert es alle Verknüpfungen, obwohl sie auf 0 gesetzt sind beide in der XML und in der Befehlszeile. Die Befehlszeile ich vorbei ist:

msiexec /i MySetup.msi INSTALLSTARTUPSHORTCUT=0 INSTALLDESKTOPSHORTCUT=0 INSTALLSTARTMENUSHORTCUT=0 /l*v inst.log /qb

versucht, die Werte in Anführungszeichen setzen und noch keinen Sprung. Hier nicht gezeigt, aber ich war erfolgreich die Eigenschaft ALLUSERS in der Manipulation pro Benutzer zu tun oder pro-Maschine Registraturen von ALLUSERS tun = „“ oder ALLUSERS = „2“ So in Eigenschaften vorbei sollte möglich sein, aber ich bin nicht sicher, was ich falsch mache.

War es hilfreich?

Lösung

Zwei Dinge, da es zwei Fragen hier:

  1. Advertised Shortcuts müssen in der gleichen Komponente sein, die die Datei, die sie an dem Punkt installiert. Das ist requried, da die Windows Installer zeigt eine angekündigte Shorcut am KeyPath der Komponente. Also, Sie können nicht beworben shorcuts verwenden, wenn Sie wollen, optional installiert werden.

Ich habe eine Blog-Post über wie eine shorcut erstellen und Validierung übergeben.

  1. Die Eigenschaften Sie müssen verwenden von dem Installations-UI-Prozess an der Server-Seite passieren markiert sicher sein. Um das zu tun nur das tun,

Beachten Sie, dass ich nicht einen Wert Attribut hinzufügen. Wenn Sie einen Wert angeben, auch wenn es 0 ist, dann wird Ihr INSTALLSTARTMENUSHORCUT auf TRUE auswerten. Eine leere / nicht-definierte Eigenschaft ist FALSCH, jeder andere Wert TRUE ist.

Andere Tipps

Haben Sie versucht, die Eigenschaften wie sichere Kennzeichnung?

<Property Id="INSTALLSTARTMENUSHORTCUT" Value="0" Secure="Yes" />

in der Dokumentation der Suche nach der Shortcut Tabelle ich glaube nicht, Sie bedingt beworben Verknüpfungen zu bekommen. Wir bekommen, um diesen durch eine angekündigtes Startmenü Verknüpfung der Installation und eine regelmäßige Desktop-Verknüpfung.

Wenn IIRC Werbung hat auf Ja wetten gesetzt

Sie haben dieses Beispiel aus MindCapers gesehen hier , ich hatte Probleme mit den shorcuts, bis ich den Registrierungseintrag erstellt.

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