Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Projekte, die <PublishTrimmed>true</PublishTrimmed>
, <IsTrimmable>true</IsTrimmable>
oder <EnableTrimAnalyzer>true</EnableTrimAnalyzer>
mit einem Zielframework (TargetFramework
) festlegen, das eine beliebige Version von .NET Standard oder .NET Framework hat, erzeugen eine Warnung oder einen Fehler, da die Kürzung für diese Zielframeworks nicht unterstützt wird.
Bei Verwendung in einem .NET Standard- oder .NET Framework-Projekt verhielten sich diese Einstellungen wie folgt:
<PublishTrimmed>true</PublishTrimmed>
hat keine Auswirkungen.<IsTrimmable>true</IsTrimmable>
hat ein Attribut auf Assemblyebene ([assembly: AssemblyMetadata("IsTrimmable", "true")]
) in die Ausgabeassembly eingebettet. Dieses Attribut hat für die Assembly bei Verwendung in einer gekürzten App (auch einer App, die <TrimMode>partial</TrimMode>
verwendet) die Kürzung aktiviert.<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
hat die Trimmanalyse für die Bibliothek aktiviert, wobei die .NET Standard- oder .NET Framework-Referenzassemblys verwendet werden, die dem Zielframework (TargetFramework
) der Bibliothek entsprechen, obwohl diese Referenzassemblys keine Anmerkungen zum Kürzen enthalten.Ab dem .NET 8 SDK in einem Projekt für .NET Standard oder .NET Framework:
<PublishTrimmed>
erzeugt einen Fehler, der angibt, dass diese Einstellung für das Zielframework nicht unterstützt wird.<IsTrimmable>
oder <EnableTrimAnalyzer>
erzeugen eine Warnung mit dem Hinweis, dass <IsTrimmable>
für das Zielframework nicht unterstützt wird. Diese Einstellungen haben ansonsten keine Auswirkung auf die Buildausgabe..NET 8 RC 1
Diese Änderung ist eine Verhaltensänderung.
Das Zulassen der Verwendung von <PublishTrimmed>
in einem .NET Standard- oder .NET Framework-Projekt hat möglicherweise den falschen Eindruck geweckt, dass diese Einstellung die Ausgabe gekürzt hat, wenn sie tatsächlich keine Auswirkung hatte.
Das Zulassen der Verwendung von <IsTrimmable>
oder <EnableTrimAnalyzer>
in einem .NET-Standard- oder .NET-Framework-Projekt bedeutete, dass es für Bibliotheksautoren einfach war, sich für das Kürzen zu entscheiden, ohne über Kürzungsinkompatibilitäten benachrichtigt zu werden. Da die .NET Standard- und .NET Framework-Referenzassemblys nicht zum Kürzen kommentiert werden, gab es keine Warnungen zur Verwendung von Framework-APIs, die nicht mit dem Kürzen kompatibel sind.
Vermeiden Sie das Festlegen von <PublishTrimmed>
in Projekten, die auf .NET Standard oder .NET Framework abzielen. Vermeiden Sie auch das Festlegen von<PublishAot>
. Dadurch wird die frühere Einstellung impliziert.
Vermeiden Sie das Festlegen von <IsTrimmable>
oder <EnableTrimAnalyzer>
in Bibliotheken, die auf .NET Standard oder .NET Framework abzielen. Vermeiden Sie auch das Festlegen von<IsAotCompatible>
. Dadurch werden die früheren Einstellungen impliziert. Stattdessen können Sie mehrere Ziele für die Bibliothek festlegen, um das aktuelle Zielframework (TargetFramework
) einzuschließen, und aktivieren Sie <IsTrimmable>
nur für die unterstützten Zielframeworks. Wenn Sie <IsTrimmable>
festlegen, wird die neueste Version des Kürzungsanalysetools mithilfe von Anmerkungen zur Kürzungskompatibilität aus der neuesten Version des Frameworks ausgeführt.
Diese Einstellungen legen beispielsweise mehrere Ziele fest, um net8.0
einzuschließend, und legen <IsTrimmable>
nur für dieses Zielframework fest. Diese Logik verwendet IsTargetFrameworkCompatible
, sodass sie auf alle mit net6.0
kompatiblen Frameworks angewendet wird. Ab dieser Version wurde die Kürzung offiziell unterstützt. Auf diese Weise muss die Bedingung beim Hinzufügen neuer Zielframeworks nicht aktualisiert werden.
<PropertyGroup>
<TargetFrameworks>netstandard2.1;net8.0</TargetFrameworks>
<IsTrimmable Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">true</IsTrimmable>
</PropertyGroup>
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenTraining
Modul
Publish an ASP.NET Core app - Training
Learn how to publish an ASP.NET Core app for deployment to a web server or cloud service.
Dokumentation
Erfahren Sie mehr über ein Breaking Change im .NET 8 SDK, bei dem „dotnet tool install“ nicht länger Tools aus nicht aufgeführten Version des NuGet-Pakets installiert.
Breaking Change: USER-Datei wird in äußere Builds importiert - .NET
Hier erfahren Sie mehr über die Breaking Changes im .NET 8 SDK, durch die die USER-Konfigurationsdatei jetzt in äußere Builds importiert wird.
Hier erfahren Sie mehr über den Breaking Change beim .NET-SDK, bei dem das Festlegen von DebugSymbols auf „false“ die PDB-Generierung deaktiviert.