Ändern des Zielspeicherorts für ein Verzeichnis
Wenn möglich, besteht die beste Möglichkeit zum Angeben des Zielspeicherorts für ein Verzeichnis darin, die Directory-Tabelle in Ihrem Installationspaket zu erstellen, um den richtigen Speicherort anzugeben. Weitere Informationen finden Sie unter Verwenden der Directory-Tabelle.
Wenn Sie den Verzeichnisspeicherort zum Zeitpunkt der Installation ändern müssen, haben Sie die folgenden Optionen:
- Geben Sie den Speicherort eines Verzeichnisses an, indem Sie den Wert einer öffentlichen Eigenschaft in der Befehlszeile festlegen. Während der CostFinalize-Aktion werden die vom Installationsprogramm verwendeten internen Verzeichnispfade auf den Wert der Eigenschaften aktualisiert, die in der Directory-Tabelle als Schlüssel aufgeführt sind. Weitere Informationen finden Sie unter Verwenden von Eigenschaften und Festlegen von öffentlichen Eigenschaftswerten in der Befehlszeile.
- Geben Sie den Speicherort eines Verzeichnisses mithilfe einer benutzerdefinierten Aktion an. Wenn die benutzerdefinierte Aktion vor der CostFinalize-Aktion ausgeführt werden muss, können Sie den benutzerdefinierten Aktionstyp 51 verwenden, um den Wert einer Eigenschaft anhand einer formatierten Textzeichenfolge festzulegen. Wenn die benutzerdefinierte Aktion nach der CostFinalize-Aktion ausgeführt wird, können Sie den benutzerdefinierten Aktionstyp 35 verwenden, um den Wert der Verzeichnispfads anhand einer formatierten Textzeichenfolge festzulegen. Benutzerdefinierte Aktionen, die eine der Systemordnereigenschaften ändern, sollten sowohl in den Ausführungssequenztabellen (InstallExecuteSequence-Tabelle oder AdminExecuteSequence-Tabelle) als auch in den Sequenztabellen der Benutzeroberfläche (InstallUISequence-Tabelle und AdminUISequence-Tabelle) enthalten sein, sodass der Ordner sowohl bei der Installation mit vollständiger Benutzeroberfläche und mit einfacher Benutzeroberfläche geändert wird.
- Wenn die Installation mit einer vollständigen Benutzeroberfläche erfolgt, können Sie MsiSetTargetPath oder das SetTargetPath-Steuerelementereignis verwenden, um den Verzeichnispfad festzulegen. Anhand der ProductState-Eigenschaft können Sie ermitteln, ob das Produkt, das diese Komponente enthält, bereits installiert ist, bevor Sie MsiSetTargetPath oder das SetTargetPath-Steuerelementereignis aufrufen. Versuchen Sie nicht, den Zielverzeichnispfad zu ändern, wenn einige Komponenten, die diesen Pfad verwenden, bereits für den aktuellen Benutzer oder einen anderen Benutzer installiert sind.
Die folgenden Einschränkungen gelten für alle oben genannten Optionen:
- Versuchen Sie nicht, den Zielverzeichnispfad zu ändern, wenn einige Komponenten, die den Pfad verwenden, bereits für den aktuellen Benutzer oder für einen anderen Benutzer installiert sind.
- Versuchen Sie nicht, den Zielverzeichnispfad während einer Wartungsinstallation zu ändern.