Ich bin ein bisschen verwirrend, wie .net-Standard 2 nuget Paket zwischen .net Kern und .net-Framework Anwendungen zu teilen. Zum Beispiel habe ich .net-standard 2.0 Paket mit nur <TargetFramework>netstandard2.0</TargetFramework>
erstellt. So habe ich nur ../libs/netstandard2.0
Ordner im Paket. Kann ich es wie in .net-framework 4.6.1 installieren. Anwendung (nach compatibility matrix kann ich)? Oder sollte ich dieses Paket Multi Target <TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
machen? Welche Vorteile hier?Kann ich ein .NET Standard 2.0-Paket in einer klassischen .NET 4.6.1-Anwendung verwenden?
Antwort
Ja, tatsächlich. Sie können das .NET Standard 2.0-Paket nur innerhalb eines .NET Framework 4.6.1-Projekts referenzieren (eine Framework-Version niedriger wird nicht mit .NET Standard 2.0 funktionieren). Es ist nicht notwendig, separate Ziele oder Umbauten zu haben.
Lesen Sie auch Referencing .NET Standard Assemblies from both .NET Core and .NET Framework.
Über die Vorteile der Verwendung von Multi-Targeting: Es gibt keine, außer Sie müssen. Was kann so sein? Nach the documentation:
Möglicherweise müssen Sie ältere Versionen von .NET Framework als Ziel verwenden, wenn Ihr Projekt sowohl .NET Framework als auch .NET Core unterstützt. Verwenden Sie in diesem Szenario #if-Anweisungen in Ihrem Code, wenn Sie neuere APIs und Sprachkonstrukte für die neueren Ziele verwenden möchten. Möglicherweise müssen Sie auch für jede Plattform, auf die Sie ausgerichtet sind, unterschiedliche Pakete und Abhängigkeiten hinzufügen, um die verschiedenen APIs für jeden Fall einzubeziehen.
So würden Sie nur wirklich brauchen, wenn Sie Inkompatibilität in Code oder Referenzen haben. Wenn Sie dieses Problem nicht haben, brauchen Sie kein Multi-Targeting.
Es gibt eine Probe gegeben, wie Referenzen basierend auf dem Build-Ziel umfassen, die einen Einblick geben könnte:
<ItemGroup Condition="'$(TargetFramework)' == 'net40'">
<Reference Include="System.Net" />
</ItemGroup>
- 1. Wie kann ich Sqlite in einer .NET Standard-Bibliothek verwenden?
- 2. .NET Core Standard-.NET-Bibliothek mit ConfigurationManager.AppSettings verwenden
- 3. .NET Standard Library vs. .NET Standard
- 4. Kann ich eine neuere System. * Assembly ohne .net-Standard verwenden?
- 5. Kann ich Roslyn im .net Standard 2.0 verwenden?
- 6. Migration Katastrophe von klassischen Asp zu. NET
- 7. Kann DBNull in .NET Standard 1.4 nicht verwenden?
- 8. Kann ich "System.Currency" in .NET verwenden?
- 9. .NET Standard Nuget Referenzen
- 10. Wie lese ich .Net Core-Konfiguration in einer Standard-Klassenbibliothek?
- 11. Kann ich ein freigegebenes Projekt aus einer .NET-Standardbibliothek referenzieren?
- 12. .NET Core vs Standard .NET-Bibliothek Leistung
- 13. ReSharper kann keine .NET-Standard-Assemblies dekompilieren
- 14. .NET Framework, .NETportable und .NET Standard
- 15. .NET "Standard-Leitungsabschluss"?
- 16. Standard-.NET-Laufzeitversion
- 17. Reusing Aufgabe <T> in .NET Kern/.NET Standard-
- 18. Zuordnen von klassischen ASP-Seiten zu .net in IIS
- 19. Klassenbibliothek .NET Standard und mscorlib.dll
- 20. .NET Standard-äquivalent Thread.CurrentCulture
- 21. Konvertieren von .NET Core 2.0-Klassenbibliotheken in .NET-Standard
- 22. Kann ich FsXaml mit .NET 4.0 verwenden?
- 23. Wie kann ich eine Zeichenfolge in .NET in .NET konvertieren?
- 24. Was entspricht PropertyInfo.ReflectedType in .NET Core/.NET Standard?
- 25. Standard-Rahmenfarbe für .net-Textfeld
- 26. Wie kann ich Alt-Codes in einer .NET-Anwendung verhindern?
- 27. C# optionale Enum-Typ-Eigenschaft Setter kompiliert in klassischen .net, aber nicht in. NET-Core? (cs0019)
- 28. Ist DES-Verschlüsselung in .NET Standard verfügbar?
- 29. Wie kann ich die .NET 2.0 XSLT-Engine aus einer .NET 1.1-Anwendung verwenden?
- 30. Wie verwende ich eine .NET-Kernklassenbibliothek in einer .NET-Kernanwendung?