NuGet Packages auf neue NET Version aktualisieren

Aktuell migrieren wir unsere Projekte / Solutions von .NET Framework 4.0 auf 4.5. Die Herausforderung bestand darin alle NuGet Packages, von denen wir viele verwenden, umzustellen. Ein Blick in die packages.config verrät, dass die installierten Pakete immer gegen eine entsprechende .NET Version gebunden sind:

   1: <?xml version="1.0" encoding="utf-8"?>

   2: <packages>

   3:   <package id="EntityFramework" version="5.0.0" targetFramework="net40" />

   4: </packages>

 

Dies lässt sich auch in den zugehörigen Assemblies ablesen:

image

Unter Path wird in diesem .NET 4.0 Projekt beispielsweise auf “packages\EntityFramework.5.0.0\lib\net40” verwiesen. Darüber ist es beim EntityFramework Package so, dass die Installation der aktuellen 5er Version in obigem Projekt lediglich die 4.4er Version referenziert wird. In der packages.config steht allerdings weiterhin 5.0.0.

Nach der Änderung des Target Frameworks auf 4.5, ergibt sich folgende Zeile in der packages.config:

   1: <package id="EntityFramework" version="5.0.0" targetFramework="net40" requireReinstallation="True" />

 

Der requiresReinstallations-Schalter bewirkt Warnungen beim Build. Um nun nicht alle packages von Hand aktualisieren zu müssen, gibt es den Befehl

update-package -reinstall

welcher die komplette Solution samt aller Projekte durchgeht und alle Packages deinstalliert und danach wieder gemäß dem gesetzten Target Framework installiert.

Mit Tag(s) versehen: , ,

4 Kommentare zu “NuGet Packages auf neue NET Version aktualisieren

  1. Sebastian 9. Oktober 2013 um 13:09 Reply

    Nice to to know: Aber eine :NET Framwork Version die nicht unter WindowsXP läuft ist mir völlig egal.

    Like

  2. […] Installierte NuGet Pakete referenzieren immer eine bestimmte .NET Version. Um sie nun auch auf die aktuelle Version zu bringen kann der Befehlupdate-package -reinstallin der Package Manager Console in Visual Studio verwendet werden.Genaueres dazu gibt es im Blog von Uli Armbruster. […]

    Like

Hinterlasse einen Kommentar