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:
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: EntityFramework, NET Framework, NuGet
Nice to to know: Aber eine :NET Framwork Version die nicht unter WindowsXP läuft ist mir völlig egal.
LikeLike
Das ist zugegeben echt ungünstig. Wir haben das letzte 3/4 Jahr damit verbracht Hardware aufzurüsten und neue Geräte zu kaufen. Aber mit dem Support Ende von Windows XP wären wir sowieso nicht mehr drum herum gekommen. Ab April 2014 wird es sicherlich spannend in Unternehmen mit XP Rechnern, die am Internet hängen!
LikeLike
Falls du doch mal aktualisieren musst, beachte auch das hier: https://uliarmbruster.wordpress.com/2013/10/10/net-framework-4-5-fuer-build-server/
LikeLike
[…] 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. […]
LikeLike