Vygenerování chyby u duplicitních souborů ve výstupu publikování
Sada .NET SDK vygeneruje novou chybu (NETSDK1152
) v případech, kdy se soubory z různých zdrojových cest zkopírují do stejné cesty k souboru ve výstupu publikování. K tomu může dojít, když projekt a jeho odkazy na projekt obsahují soubor se stejným názvem, který je součástí výstupu publikování.
Zavedená verze
.NET SDK 6.0.100
Staré chování
Oba soubory se zkopírovaly do stejného cíle. Druhý soubor, který se má zkopírovat, přepíše první soubor a který soubor "won" byl většinou libovolný.
V některých případech se sestavení nezdařilo. Například při pokusu o vytvoření aplikace s jedním souborem selhal bundler s chybou ArgumentException, jak je znázorněno v následujícím výstupu sestavení:
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]
Nové chování
Počínaje rozhraním .NET 6 nástroj MSBuild odebere duplicitní soubory, které se zkopírují do složky publikování, pokud jsou zdroj i cíl stejné. Pokud existují nějaké zbývající duplicity, NETSDK1152
vygeneruje se chyba a vypíše soubory, které jsou duplikovány.
Důvod změny
Duplicitní soubory ve výstupu publikování někdy způsobily přerušení sestavení nebo nepředvídatelné chování.
Doporučená akce
V ideálním případě byste měli projekt aktualizovat, abyste se vyhnuli situacím, kdy se do výstupu publikování zkopíruje více souborů se stejným názvem. Chybová zpráva obsahuje název duplicitního souboru. Mezi příčiny duplicitních souborů patří:
- Projekt ASP.NET Core, který odkazuje na webovou službu ASP.NET Core a každý má svůj vlastní soubor appsettings.json .
- Položka projektu, kde
CopyToOutputDirectory
je zbytečně nastavena .Always
Binární soubory protokolu mohou být užitečné pro vyhledání příčiny duplicitních souborů.
Alternativně můžete nastavit ErrorOnDuplicatePublishOutputFiles vlastnost .
false
Ovlivněná rozhraní API
–
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro