5

Im MiniProfiler.MVC3 NuGet Paket bearbeiten, es erzeugt eine Datei in App_Start die verwendet wird, Miniprofiler Einstellungen zu steuern (die SqlFormatter zu verwenden, Änderungen des ViewEngines, wenn Miniprofiler zu starten , etc.).Aktualisieren MiniProfiler.MVC3 NuGet Paket nach MiniProfiler.cs in App_Start

Es gibt viele TODO-Kommentare in dieser Datei, in denen Sie darüber sprechen, wie Sie den Code so ändern können, wie Sie möchten. Das ist großartig, aber wenn das NuGet-Paket aktualisiert wird, wird es sehen, dass ich die Datei geändert habe und die aktualisierte Version nicht herunterziehe. Das Problem hier ist, dass ich alle Updates für diese Datei verliere und je nachdem, was sonst im Paket aktualisiert wurde, unbrauchbar macht (zum Beispiel beim Aktualisieren von MiniProfiler.MVC3 von Version 1.9 auf Version 2.0.1 nach dem Ändern von MiniProfiler.cs in App_Start , das Projekt wird nicht mehr wegen der erforderlichen Änderungen an dieser Datei in der Version 2.0.1 erstellt.

Was ist der beste Weg, damit umzugehen? Sollte ich meine eigene Datei in App_Start erstellen und nicht die im NuGet-Paket ändern, damit sichergestellt ist, dass ich immer das vollständige Update beim Upgrade auf die neueste Version des NuGet-Pakets bekomme?

Antwort

1

Sie könnten die Datei in App_Start sichern, aktualisieren und dann die Dateien manuell zusammenführen oder ein Merge-Tool verwenden. Sie würden dies wahrscheinlich sowieso tun, wenn Sie Quellcodeverwaltung verwenden.

0

Schnell und schmutzig: Erstellen Sie die gewünschte Datei. Kopieren Sie dann jedes Mal, wenn Sie ein Upgrade mit Nugget durchführen, auf die Datei. Oder bei jedem Kompilieren. Die zusätzliche Build-Zeit ist vernachlässigbar.

Etwas besser: Verwenden Sie das Precompile-Ereignis im Visual Studio und vergleichen Sie die Dateien. Wenn sie sich unterscheiden, kopieren Sie sie entweder oder teilen Sie sie dem Benutzer mit. Ich kann keine Möglichkeit finden, eine Message Box oder ähnliches auf meinem Kopf zu zeigen, aber man könnte immer eine neue Datei mit einem Kompilierungsfehler und etwas Text in der Nähe "Diskrepanz in der xxx Datei" erstellen.

0

versuchen Sie mit quecksilberhaltigen Warteschlangen. Sie können Ihren Code an den gewünschten Punkt bringen (mit Ausnahme der Datei, auf die Sie verweisen) und dann den Commit durchführen. Nehmen Sie Änderungen an Ihrer Datei vor und schieben Sie sie in eine Warteschlange. Stellen Sie sicher, dass sie von zukünftigen Updates (manuell) ausgeschlossen wird. Wenn Sie das Paket aktualisieren möchten, müssen Sie es aus der Codebasis entfernen. Dadurch wird es wie früher aussehen und das Nuget-Update wird ausgeführt. Dann können Sie die Warteschlange zurück in den Code schieben, und Ihre Änderungen werden erneut angewendet. Es könnte ein bisschen fummeln, aber einen Blick wert.

Zum Vergleich: