在运行我的管道时,它在发布阶段失败,出现2个错误。
##[error]Error: The process 'C:Program Filesdotnetdotnet.exe' failed with exit code 1
##[error]Dotnet command failed with non-zero exit code on the following projects : ...
管道还列出了指向具有重复名称的文件的所有路径,即使内容不同。管道以前在使用重复名称时运行良好,但现在抛出并出错,将不会继续。对此,正确的解决方法是什么?
我认为我的管道正在使用Dotnet6,尽管该应用程序只有3.1,添加它是为了修复它。我不知道这是否是正确的修复,但它正在工作。
我将其添加到具有重复文件名的csproj文件中。
<PropertyGroup>
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
</PropertyGroup>
这就是我找到它的地方。https://learn.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props#erroronduplicatepublishoutputfiles
这是.NET 6中引入的一个突破性的更改https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/6.0/duplicate-files-in-output
你有多种方法可以解决这个问题:
- 评估您在项目中的资源;CopyToOutputFolder";被设置为"0";总是";如果不需要,则将其移除。MSBuild处理此问题的方式是,它会在生成完成后尝试将这些资源复制到输出文件夹
- 通过将特定SDK添加到global.json中,在构建过程中定位该SDKhttps://learn.microsoft.com/en-us/dotnet/core/versions/selection你可能有";向前滚动";选项设置为";latestFeature";它自动使用最新的SDK,因此您可以删除该SDK并以.NET 5或更早版本为目标