Gibt es eine Möglichkeit, die Fingerabdruckfunktion für statische Dateien für .net 9-Webprojekte zu deaktivieren?
Posted: 29 Dec 2024, 12:07
Ich habe ein Photino.Blazor-Projekt, bei dem wir aufgrund einiger Kuriositäten im _content je nach Debug-/Release-/Veröffentlichungsausgaben den folgenden Inhalt manuell zum csproj hinzufügen mussten, um sicherzustellen, dass immer das erwartete vorhanden ist Statische Dateien werden auf konsistente Weise ausgegeben.
Das hat gut funktioniert, bis wir .net 9 installiert haben (auch wenn das Projekt immer noch auf .net 8 abzielt), und wenn Sie dann einen Dotnet-Build für .csproj durchführen, geht es kaputt Dies liegt daran, dass .net 9 eine Fingerabdruckfunktion hinzufügt, die scheinbar immer aktiv ist und die Art und Weise ändert, wie mit statischen Dateien umgegangen wird.
Der obige Code, der in .net 8 funktioniert hat, wird also einmal nicht mehr funktionieren. Netto 9 ist installiert und gibt den Fehler aus:
13>Microsoft.Common.CurrentVersion.targets(5322,5): Fehler MSB3021: Datei „E:\ konnte nicht kopiert werden“ Code\open-source\ANONYMISIERT\wwwroot\webfonts\quicksand\Quicksand-SemiBold.ttf“ zu „bin\Debug\net8.0\wwwroot_content\REDACTED\webfonts\quicksand\Quicksand-SemiBold#[.{fingerprint}]?.ttf“. Die Syntax des Dateinamens, des Verzeichnisnamens oder der Datenträgerbezeichnung ist falsch. : 'E:\Code\open-source\REDACTED\bin\Debug\net8.0\wwwroot_content\REDACTED\webfonts\quicksand\Quicksand-SemiBold#[.{fingerprint}]?.ttf'.
Wie Sie sehen können, wird jetzt #[.{fingerprint}]? zur Ausgabe hinzugefügt, was früher nie vorkam und unerwünscht ist. Gibt es also eine Möglichkeit, diese Funktion in .net 9 zu deaktivieren? denn im Idealfall möchte ich irgendwann auf .net 9 aktualisieren, aber ich möchte, dass es nicht mehr versucht, die statischen Dateien nachzubearbeiten.
Code: Select all
PreserveNewest
$([MSBuild]::MakeRelative('$(MSBuildProjectDirectory)','$([MSBuild]::NormalizePath('wwwroot\%(BasePath)\%(RelativePath)'))'))
Der obige Code, der in .net 8 funktioniert hat, wird also einmal nicht mehr funktionieren. Netto 9 ist installiert und gibt den Fehler aus:
13>Microsoft.Common.CurrentVersion.targets(5322,5): Fehler MSB3021: Datei „E:\ konnte nicht kopiert werden“ Code\open-source\ANONYMISIERT\wwwroot\webfonts\quicksand\Quicksand-SemiBold.ttf“ zu „bin\Debug\net8.0\wwwroot_content\REDACTED\webfonts\quicksand\Quicksand-SemiBold#[.{fingerprint}]?.ttf“. Die Syntax des Dateinamens, des Verzeichnisnamens oder der Datenträgerbezeichnung ist falsch. : 'E:\Code\open-source\REDACTED\bin\Debug\net8.0\wwwroot_content\REDACTED\webfonts\quicksand\Quicksand-SemiBold#[.{fingerprint}]?.ttf'.
Wie Sie sehen können, wird jetzt #[.{fingerprint}]? zur Ausgabe hinzugefügt, was früher nie vorkam und unerwünscht ist. Gibt es also eine Möglichkeit, diese Funktion in .net 9 zu deaktivieren? denn im Idealfall möchte ich irgendwann auf .net 9 aktualisieren, aber ich möchte, dass es nicht mehr versucht, die statischen Dateien nachzubearbeiten.