報錯:
C:\Program Files\dotnet\sdk\6.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ConflictResolution.targets(112,5): 錯誤 NETSDK1152: 找到了多個具有相同相對路徑的發布輸出文件: D:\project1.xml, D:\project2.xml, D:\project3xml。
原因:
是項目多層引用(a引用了b、c,d引用了a、b、c),且被引用的項目生成了xml文件,發布時導致xml文件重復 ,但.net 6.0下會觸發報錯。
解決辦法(任一即可):
1. 被引用項目不要生成xml文件【根本原因】;
2. 發布時,將C:\Program Files\dotnet\sdk\6.x的sdk移出C:\Program Files\dotnet目錄;
3. 將C:\Program Files\dotnet\sdk\6.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ConflictResolution.targets下<NETSdkError Condition="'$(_ResolvedFileToPublishContainsDuplicates)' == 'true'"設為false;
4. 在需要發布項目的csproj里新增<PropertyGroup><ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles></PropertyGroup>;