2014-06-30 16 views
12

Avere un'applicazione ASP.NET ci sono diversi voci nel file web.config in questo formato:Posso dire a bindingRedirect di utilizzare sempre l'ultima versione disponibile?

<dependentAssembly> 
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-1.6.5135" newVersion="1.6.5135" /> 
</dependentAssembly> 

Queste librerie vengono come pacchetti Nuget.

Ora ogni volta che aggiorno miei 20 pacchetti Nuget faccio qualcosa di simile:

  1. Un clic per aggiornare tutti i pacchetti.
  2. Apre l'applicazione nel browser.
  3. Vedere errori come this one.
  4. Aprire il mio Web.Config, trovare la voce di reindirizzamento binding.
  5. Ricerca nell'ultima versione degli assiemi.
  6. Modificare my web.config.
  7. Aggiornare i passaggi 2 ... 6 per tutti gli altri pacchetti NuGet aggiornati con reindirizzamenti di binding.

Questo è molto fastidioso.

La mia domanda:

C'è un modo per dire al bindingRedirect entry utilizzare sempre la versione più recente?

E.g. qualcosa di simile:

<bindingRedirect oldVersion="0.0.0.0-*" newVersion="*" /> 

(Utilizzo di un jolly per raccontare l'ultima versione)

Il più vicino che mai incontrato è qualcosa di simile:

<bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="1.6.5135" /> 

(specificare solo la versione più recente, una volta)

+0

come un ottimo soluzione sui miei siti web in tempo reale sul server, ho scritto uno script di riga di comando per regolare automaticamente i reindirizzamenti vincolanti analizzando la versione fuori delle assemblee acutal e modifiying il file web.config di conseguenza. –

+1

non mi dispiacerebbe condividere lo script vero? Sto incontrando la stessa cosa. – asawyer

+0

@asawyer sua profondamente nascosto all'interno di un grande personalizzato [CS Script] (https://github.com/oleg-shilo/cs-script) costruire script. Fondamentalmente file di configurazione aperta, leggere le versioni DLL da assemblee, sostituzione di stringhe in config, scrivere file di configurazione di nuovo. –

risposta

4

Sfortunatamente, la risposta a questo è no. Vedi lo bindingRedirect element on MSDN.

Per citare:

oldVersion: Attributo obbligatorio.

Specifica la versione dell'assembly originariamente richiesta. Il formato di un numero di versione dell'assembly è major.minor.build.revision. I valori validi per ogni parte di questo numero di versione sono 0 a 65535.

È inoltre possibile specificare un intervallo di versioni nel seguente formato: n.n.n.n - n.n.n.n

newVersion: Richiesto attributo. Specifica la versione dell'assembly da utilizzare al posto della versione richiesta in origine nel formato: n.n.n.n

Questo valore può specificare una versione precedente alla oldVersion.

Problemi correlati