发布冲突
冲突
- hpsocket.net冲突
tex
C:\Program Files\dotnet\sdk\8.0.404\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ConflictResolution.targets(112,5): error NETSDK1152: 找到了多个具有相同相对路径的发布输出文件: C:\Users\x\.nuget\packa
ges\hpsocket.net\6.0.3\runtimes\win-x64\native\HPSocket4C.dll, C:\Users\xkp\.nuget\packages\hpsocket.net\6.0.3\runtimes\win-x86\native\HPSocket4C.dll。 [E:\GatewayServer\Gat
eway\IOT\Gateway.csproj]
解决:
xml
<PropertyGroup>
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
</PropertyGroup>
方法汇总:
原因:
是项目多层引用(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里新增
xml<PropertyGroup> <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles> </PropertyGroup>
参考:
解决Visual Studio报错 NETSDK1152: 找到了多个具有相同相对路径的发布输出文件 - 鱼歌 - 博客园