Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das .NET SDK generiert einen neuen Fehler (NETSDK1152
) in Fällen, in denen Dateien aus verschiedenen Quellpfaden in denselben Dateipfad in der Veröffentlichungsausgabe kopiert werden. Dies kann passieren, wenn ein Projekt und seine Projektverweise eine Datei mit demselben Namen enthalten, der in der Veröffentlichungsausgabe enthalten ist.
Eingeführte Version
.NET SDK 6.0.100
Altes Verhalten
Beide Dateien wurden an dasselbe Ziel kopiert. Die zweite zu kopierende Datei hat die erste Datei überschrieben, und welche Datei „gewonnen“ hat, war größtenteils willkürlich.
In einigen Fällen schlug die Erstellung fehl. Wenn Sie beispielsweise versuchen, eine Einzeldatei-App zu erstellen, gab der Bundler einen Fehler mit der ArgumentException wie in der folgenden Buildausgabe aus:
C:\Program Files\dotnet\sdk\5.0.403\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Publish.targets(962,5): error MSB4018: The "GenerateBundle" task failed unexpectedly. [C:\repro\repro.csproj]
C:\Program Files\dotnet\sdk\5.0.403\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Publish.targets(962,5): error MSB4018: System.ArgumentException: Invalid input specification: Found multiple entries with the same BundleRelativePath [C:\repro\repro.csproj]
C:\Program Files\dotnet\sdk\5.0.403\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Publish.targets(962,5): error MSB4018: at Microsoft.NET.HostModel.Bundle.Bundler.GenerateBundle(IReadOnlyList`1 fileSpecs) [C:\repro\repro.csproj]
Neues Verhalten
Ab .NET 6 entfernt MSBuild doppelte Dateien, die in den Veröffentlichungsordner kopiert werden, wenn sowohl die Quelle als auch das Ziel identisch sind. Wenn noch Duplikate vorhanden sind, wird ein NETSDK1152
Fehler generiert und die dateien aufgelistet, die dupliziert sind.
Grund für Änderung
Doppelte Dateien in der Veröffentlichungsausgabe verursachten manchmal Buildunterbrechungen oder unvorhersehbares Verhalten.
Empfohlene Aktion
Im Idealfall sollten Sie Ihr Projekt aktualisieren, um Situationen zu vermeiden, in denen mehrere Dateien mit demselben Namen in die Veröffentlichungsausgabe kopiert werden. Die Fehlermeldung enthält den Namen der doppelten Datei. Einige Ursachen für doppelte Dateien sind:
- Ein ASP.NET Core-Projekt, das auf einen ASP.NET Core-Webdienst verweist und jeder über eine eigene appsettings.json Datei verfügt.
- Ein Projektelement, bei dem
CopyToOutputDirectory
unnötigerweise aufAlways
festgelegt ist.
Binäre Protokolldateien können hilfreich sein, um die Ursache der duplizierten Dateien zu finden.
Alternativ können Sie die Eigenschaft ErrorOnDuplicatePublishOutputFiles auf
false
einstellen.
Betroffene APIs
Nicht verfügbar