Wenn Sie Nuget verwenden, um ein bereits installiertes Paket zu aktualisieren, ruft es "uninstall.ps1" und dann "install.ps1" auf. Für das benutzerdefinierte Projekt, an dem ich gerade arbeite, muss ich in "uninstall.ps1" wissen, was der Grund für den Aufruf der Deinstallation ist. Liegt es daran, dass das Paket aktualisiert oder entfernt wird? Aus dem Grund würde ich unterschiedliche Logik verarbeiten wollen.Nuget Update ruft uninstall.ps1 und dann install.ps1
Es scheint, dass es möglich sein könnte, den Unterschied, weil die Ausgabe der Konsole für ein Update zu wissen, sagt:
Gelöst Aktionen installieren Paket ‚[Id] [Version].‘ Ausführen von Skriptdatei 'uninstall.ps1' ...
aber für eine deinstallation heißt es:
Gelöst Aktionen Deinstallation Paket ‚[Id]. [Version]‘ Ausführen von Skriptdatei ‚uninstall.ps1‘ ...
Beachten Sie, dass das genannte Skript ist das gleiche, aber die Nuget Aktion ist anders . Ist die Nuget-Aktion (install vs. uninstall) von einer Variablen, einer Eigenschaft oder einer temporären Datei abrufbar? Dieses Verhalten scheint unabhängig von der Verwendung von VS2012, VS2013 oder VS2015 gleich zu sein.
Es gibt kein Update.ps1-Skript. Um also das Paket zu aktualisieren, wird sichergestellt, dass alle Nebeneffekte des * alten * Installationsskripts durch Ausführen von uninstall.ps1 rückgängig gemacht werden. Und führt install.ps1 als nächstes aus. Ansonsten die gleichen Dinge, die bei der Aktualisierung passieren, indem das Paket zuerst entfernt und anschließend erneut hinzugefügt wird. –