Ho un pacchetto NuGet interno che contiene una singola DLL, nessuna dipendenza esterna del pacchetto NuGet e nessuna trasformazione web.config.Pacchetto aggiornamento Nuget che aggiorna in modo non corretto i reindirizzamenti dell'associazione
Eppure, quando ho eseguito Update-pacchetto sui miei progetti (classe lib e sito web) per questo specifico NuGet, si sta aggiornando automaticamente il mio sito web.config redirect assemblaggio vincolanti per vecchie versioni di System.Web.Mvc e Newtonsoft .json. Il sito web.config li ha attualmente vincolati all'ultima versione utilizzata.
Utilizzo della GUI, utilizzo dei pacchetti di gestione NuGet per la soluzione ... Ho scelto di AGGIORNARE questo NuGet per i progetti applicabili che hanno un riferimento alla versione precedente. Poi scegli Aggiornamento
Ecco l'output del Package Manager: http://pastebin.com/3ySwTRFR
E il mio web.config è passato da:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
A:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
</dependentAssembly>
Il pacchetto NuGet sto aggiornando ha una DLL che fa riferimento a Newtonsoft.Json (ma non è esplicitamente creata una dipendenza del pacchetto NuGet)
Quando lo sviluppatore inconsapevole aggiorna questo pacchetto NuGet, interrompe il runtime alla ricerca della vecchia versione delle DLL MVC o JSON.NET.
In passato ho tentato di utilizzare lo -IgnoreDependencies powershell command switch, ma questo sembra non avere alcun impatto sul problema.
Qualche idea su cosa potrebbe trasformare il mio web.configs (senza una trasformazione esplicita) durante il pacchetto di aggiornamento?
Modifica: VS2015 con NuGet 3.3.0 sembra comportarsi meglio ... durante l'aggiornamento casuale del pacchetto ha rilevato un vecchio reindirizzamento del binding BAD e lo ha corretto!
BTW, il comando della console del pacchetto Add-BindingRedicrect non funziona. Aggiorna solo 3 su 72 pacchetti di riferimento. Lo script che ho fornito passa attraverso tutti loro e agisce su qualsiasi pacak in "packages.config" a meno che la DLL non esista nella directory BIN. – RashadRivera