Ich schreibe eine Klassenbibliothek für einen einfachen Parser in C #. Bei der ersten Erstellung habe ich den .NET-Standard 2.0 verwendet. Nun muss ich ihn jedoch auf .NET 4.6 migrieren, um den anderen Projekten in meiner Lösung zu entsprechen und NUnit zu verwenden.
Ich habe versucht, den Anweisungen in der Microsoft-Dokumentation zu folgen, aber wenn ich versuche, ein anderes Framework in den Eigenschaften auszuwählen, kann ich nur andere .NET-Standardversionen finden.
Wie kann ich es migrieren? Muss ich die .csproj
-Datei manuell bearbeiten?
Öffnen Sie die Projektdatei (.csproj) und ändern Sie das TargetFramework in net462
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
Wenn Sie Ihre Klassenbibliothek als Nuget-Paket veröffentlichen, können Sie dies besser einrichten. Schauen Sie sich diesen Artikel an:
Grundsätzlich können Sie Ihre Klassenbibliothek für Multi-Targeting einrichten und in .NET-Kernprojekte sowie in verschiedene Versionen von .NET-Frameworks importieren.
Meine persönliche Erfahrung in Visual Studio 2017 ist, dass Wiederherstellen eines Projekts und Hinzufügen vorhandener Quellen der einfachste, sicherste und effektivste Weg ist. Da die .Net Framework-basierte csproj-Datei zusätzliche XML-Elemente enthält (im Vergleich zu Standard-basiert), scheint sich dies zu ändern "TargetFramework" ist nicht genug . Unten ist ein Teil der standardmäßig erscheinenden Unterschiede aufgeführt:
Es gibt ein paar Schritte, die ich für mich getan und gearbeitet habe:
git Push
Ihren Code, damit Sie eine Sicherung haben :)Ersetzen Sie die TargetFramework-OR/AND-TargetFrameworkVersion durch <TargetFramework>netcoreapp2.0</TargetFramework>
.
Ändern Sie die Projektzeile. Dies ist normalerweise die erste Zeile (nach dem XML-Stammverzeichnis) in: <Project Sdk="Microsoft.NET.Sdk"
>
Entfernen Sie den Import, der normalerweise die zweite Zeile ist (nach dem XML-Stamm).
Hoffe, das funktioniert für dich. Sie scheinen viele Schritte zu sein, aber sie sind nicht so kompliziert und dies ist eine einmalige Anstrengung.