ASP.NET Core 3: Wie verweise ich auf 3.0.0-Assemblys in benutzerdefinierten Bibliotheken?

8

Ich sehe, dass Anwendungen, die auf das Microsoft.AspNetCore.AppFramework verweisen (AKA ASP.NET Core 3.0), Typen aus der Assembly verwendenMicrosoft.AspNetCore.Mvc.Abstractions, Version=3.0.0.0,

Geben Sie hier die Bildbeschreibung ein

Ich kann jedoch kein NuGet-Paket mit derselben Version finden 3.0.0. Wie soll ich jetzt auf Pakete verweisen? Wenn ich beispielsweise überschreiben möchte ControlBase, wie soll ich auf die Microsoft.AspNetCore.Mvc.Core, Version=3.0.0.0Assembly verweisen, wenn es auf NuGet keine solchen Paketversionen gibt ?

Nach dem Hinzufügen der folgenden:

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

Ich habe eine andere Art des Abnehmens:

Geben Sie hier die Bildbeschreibung ein

Welches gibt den Fehler:

NETSDK1073: Die FrameworkReference 'Microsoft.AspNetCore.App' wurde nicht erkannt

Das Entladen und Neuladen der Anwendung hilft nicht.

Das gleiche Problem tritt in einem leeren neuen Projekt auf:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
</Project>

Zusammenstellung

1> ------ Neu erstellen Alle gestartet: Projekt: ClassLibrary1, Konfiguration: Beliebige CPU debuggen ------

1> C: \ Programme \ dotnet \ sdk \ 3.0.100 \ Sdks \ Microsoft.NET.Sdk \ Ziele \ Microsoft.NET.Sdk.FrameworkReferenceResolution.targets (263,5): Fehler NETSDK1073: Die FrameworkReference 'Microsoft.AspNetCore .App 'wurde nicht erkannt 1> Fertig Bauprojekt "ClassLibrary1.csproj" - FEHLGESCHLAGEN. ========== Alle neu erstellen: 0 erfolgreich, 1 fehlgeschlagen, 0 übersprungen ==========

Roman Pokrovskij
quelle

Antworten:

6

Sie müssen FrameworkReferenceIhrem csproj ein hinzufügen

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

Siehe Migrate von ASP.NET - Core 2,2 bis 3,0 , um weitere Informationen

ESG
quelle
1
Vielen Dank ... Warum kann ich nicht auf die einzige Baugruppe verweisen? Ich würde gerne die Motivation der Architekten verstehen ...
Roman Pokrovskij
Und es funktioniert zumindest in meinem Fall nicht. TargetFramework>netstandard2.1</TargetFramework>überprüft, keine anderen Bibliotheken. Auch in neuer leerer C # -Bibliothek ( netstandard2.1natürlich).
Roman Pokrovskij
1
Dies kann daran liegen, dass asp.net Core 3 .net Core 3 benötigt und nicht netstandard. Wenn ich mein Ziel-Framework auf ändere netcoreapp3.0und das hinzufüge FrameworkReference, funktioniert alles.
ESG
Sie haben in netstadard2.1Teilmengen geschrieben (in was kann plattformabhängig sein Microsoft.AspNetCore.Mvc.Abstractions?) und diese dann exklusiv veröffentlicht netcoreapp3.0. Der Willenskraft von MS-Architekten sind keine Grenzen gesetzt.
Roman Pokrovskij