如何修复 Azure 管道错误 NETSDK1152?

Posted

技术标签:

【中文标题】如何修复 Azure 管道错误 NETSDK1152?【英文标题】:How do I fix Azure pipeline error NETSDK1152? 【发布时间】:2021-12-22 03:55:35 【问题描述】:

在运行我的管道时,它在发布阶段失败,出现 2 个错误。

##[error]Error: The process 'C:\Program Files\dotnet\dotnet.exe' failed with exit code 1


##[error]Dotnet command failed with non-zero exit code on the following projects : ...

管道还会列出所有具有重复名称的文件的路径,即使内容不同。管道在使用重复名称之前运行良好,但现在抛出错误并且不会继续。什么是正确的解决方法?

【问题讨论】:

您需要向我们提供更多详细信息才能给出有意义的答案。很可能还有更多错误消息或警告... 也可能是您现在正在使用 .NET 6,因为昨天发布了。您是否有明确的“使用 Dotnet”任务来在您的管道中设置 SDK 版本?另请参阅:support.abp.io/QA/Questions/1868/… 我没有 Dotnet 任务,该应用程序是一个 Blazor 应用程序,在 3.1 上具有 UI 和 API。没有其他错误,这是我看到的唯一警告##[warning].NET 5 与旧版 Nuget 存在一些兼容性问题( 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 从 .NET 5 -> .NET 6 更新后我遇到了同样的问题。我有 UseDotNetDotNetCoreCLI restore 在管道中构建任务,但在 DotNetCoreCLI @987654327 @ 由于 blazor 客户端和 blazor 服务器项目中的 libman.json 文件,我收到 NETSDK1152 错误。将它们标记为不复制到输出目录不会改变错误。 【参考方案1】:

我认为我的管道正在使用 Dotnet6,即使该应用程序只有 3.1,这是为了修复它而添加的。我不知道这是否是正确的修复,但它正在工作。

我将此添加到具有重复文件名的 csproj 文件中。

<PropertyGroup>
  <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
</PropertyGroup>

这是我找到它的地方。 https://docs.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props#erroronduplicatepublishoutputfiles

【讨论】:

【参考方案2】:

这是 .NET 6 中引入的一项重大更改 https://docs.microsoft.com/en-us/dotnet/core/compatibility/sdk/6.0/duplicate-files-in-output

您有多种解决方法:

    在“CopyToOutputFolder”设置为“Always”的项目中评估您的资源,如果不需要,请将其删除。 MSBuild 是如何处理这个问题的,它会在构建完成后尝试将这些资源复制到输出文件夹。 在构建期间通过将特定 SDK 添加到 global.json 中来定位它 https://docs.microsoft.com/en-us/dotnet/core/versions/selection 您可能将“rollForward”选项设置为“latestFeature”,它会自动使用最新的 SDK,因此您可以将其移除并以 .NET 5 或更早版本为目标。

【讨论】:

以上是关于如何修复 Azure 管道错误 NETSDK1152?的主要内容,如果未能解决你的问题,请参考以下文章

Azure 构建管道 NuGet 还原错误 NETSDK1045

如何在 azure devops 构建代理中修复“*pod* 不支持配置文件”

使用 .NET SDK 从 Azure 文件共享下载空文件时出现 InvalidRange 错误

如何在 yaml 中处理 Azure DevOps 管道中的错误?

Azure Pipeline 中的简单 Appium 测试 - 如何修复失败的构建步骤 (vstest)?

尝试编写命名管道时如何修复“Broken Pipe”错误?