Azure DevOps VSTS .netcore构建失败,但在我的电脑上运行良好。

7
我在我的.NET Core 2.1.1 MVC网站中一直遇到依赖项错误。它可以从我的PC构建,但Azure DevOps没有正确编译引用。为了解决这个问题,我添加了几张图片。 enter image description here enter image description here 在我更新Nuget至最新版本后,DevOps出现了错误。
nuget命令失败,退出代码为(1),错误为(NU1607:检测到Microsoft.Extensions.DependencyInjection.Abstractions的版本冲突。直接从项目引用包以解决此问题。 CBW.Website(>= 1.0.0)-> Microsoft.VisualStudio.Web.CodeGeneration.Design(>= 2.1.5)-> Microsoft.VisualStudio.Web.CodeGenerators.Mvc(>= 2.1.5)-> Microsoft.VisualStudio.Web.CodeGeneration(>= 2.1.5)-> Microsoft.Extensions.DependencyInjection(>= 2.1.1)-> Microsoft.Extensions.DependencyInjection.Abstractions(>= 2.1.1) CBW.Website(>= 1.0.0)-> Microsoft.AspNetCore.App(>= 2.1.0)-> Microsoft.Extensions.DependencyInjection.Abstractions(>= 2.1.0)。 D:\a\1\s\CBW.Website\CBW.Website.csproj中的错误 NU1607:检测到Microsoft.Extensions.DependencyInjection.Abstractions的版本冲突。直接从项目引用包以解决此问题。 CBW.Website(>= 1.0.0)-> Microsoft.VisualStudio.Web.CodeGeneration.Design(>= 2.1.5)-> Microsoft.VisualStudio.Web.CodeGenerators.Mvc(>= 2.1.5)-> Microsoft.VisualStudio.Web.CodeGeneration(>= 2.1.5)-> Microsoft.Extensions.DependencyInjection(>= 2.1.1)-> Microsoft.Extensions.DependencyInjection.Abstractions(>= 2.1.1) CBW.Website(>= 1.0.0)-> Microsoft.AspNetCore.App(>= 2.1.0)-> Microsoft.Extensions.DependencyInjection.Abstractions(>= 2.1.0)。

包无法还原

***************编辑 我根据和将所有内容定位到版本2.1.5的nuget错误进行了修复。现在我又遇到了还原错误。 在此输入图片描述

我的Csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
     <RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion>
    <UserSecretsId>aspnet-AspNetCorePagesIdentity-***************-***-*******-</UserSecretsId>
    <TypeScriptToolsVersion>3.0</TypeScriptToolsVersion>
    <AutoGenerateBindingRedirects>True</AutoGenerateBindingRedirects>
  </PropertyGroup>

  <ItemGroup>
    <Content Include="Client\assets\controlbyweb-logo.png" />
    <Content Include="Client\assets\webrelay_170.png" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.5" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.5" PrivateAssets="All" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Areas\Identity\Services\" />
  </ItemGroup>

  <ItemGroup>
    <Content Update="Client\_ViewImports.cshtml">
      <Pack>$(IncludeRazorContentInPack)</Pack>
    </Content>
  </ItemGroup>


</Project>

**** 错误**

2018-10-08T14:44:09.2159846Z   Restoring packages for D:\a\1\s\CBW.Website\CBW.Website.csproj...
2018-10-08T14:44:09.7085782Z C:\hostedtoolcache\windows\dncs\1.0.4\x64\sdk\1.0.4\NuGet.targets(97,5): error : Package Microsoft.VisualStudio.Web.CodeGeneration.Design 2.1.5 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.VisualStudio.Web.CodeGeneration.Design 2.1.5 supports: [D:\a\1\s\CBW.Website\CBW.Website.csproj]
2018-10-08T14:44:09.7094563Z C:\hostedtoolcache\windows\dncs\1.0.4\x64\sdk\1.0.4\NuGet.targets(97,5): error :   - net461 (.NETFramework,Version=v4.6.1) [D:\a\1\s\CBW.Website\CBW.Website.csproj]
2018-10-08T14:44:09.7099570Z C:\hostedtoolcache\windows\dncs\1.0.4\x64\sdk\1.0.4\NuGet.targets(97,5): error :   - netstandard2.0 (.NETStandard,Version=v2.0) [D:\a\1\s\CBW.Website\CBW.Website.csproj]
2018-10-08T14:44:09.7102618Z C:\hostedtoolcache\windows\dncs\1.0.4\x64\sdk\1.0.4\NuGet.targets(97,5): error : Package Microsoft.AspNet.WebApi.Client 5.2.6 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.AspNet.WebApi.Client 5.2.6 supports: [D:\a\1\s\CBW.Website\CBW.Website.csproj]
2018-10-08T14:44:09.7103331Z C:\hostedtoolcache\windows\dncs\1.0.4\x64\sdk\1.0.4\NuGet.targets(97,5): error :   - net45 (.NETFramework,Version=v4.5) [D:\a\1\s\CBW.Website\CBW.Website.csproj]
2018-10-08T14:44:09.7103534Z C:\hostedtoolcache\windows\dncs\1.0.4\x64\sdk\1.0.4\NuGet.targets(97,5): error :   - netstandard2.0 (.NETStandard,Version=v2.0) [D:\a\1\s\CBW.Website\CBW.Website.csproj]
2018-10-08T14:44:09.7103694Z        Package Microsoft.Extensions.WebEncoders 2.1.1 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.Extensions.WebEncoders 2.1.1 supports: netstandard2.0 (.NETStandard,Version=v2.0)
2018-10-08T14:44:10.0475303Z       Package Microsoft.Net.Http.Headers 2.1.1 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.Net.Http.Headers 2.1.1 supports: netstandard2.0 (.NETStandard,Version=v2.0)
2018-10-08T14:44:10.0475426Z       Package Microsoft.VisualStudio.Web.CodeGenerators.Mvc 2.1.5 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.VisualStudio.Web.CodeGenerators.Mvc 2.1.5 supports: netstandard2.0 (.NETStandard,Version=v2.0)
2018-10-08T14:44:10.0475562Z       One or more packages are incompatible with .NETCoreApp,Version=v2.1.
2018-10-08T14:44:10.0475666Z   
2018-10-08T14:44:10.0475771Z   NuGet Config files used:
2018-10-08T14:44:10.0475909Z       D:\a\1\Nuget\tempNuGet_13.config
2018-10-08T14:44:10.0476013Z   
2018-10-08T14:44:10.0476113Z   Feeds used:
2018-10-08T14:44:10.0476241Z       https://api.nuget.org/v3/index.json
2018-10-08T14:44:10.1010270Z ##[error]Error: C:\hostedtoolcache\windows\dncs\1.0.4\x64\dotnet.exe failed with return code: 1
2018-10-08T14:44:10.1032411Z ##[error]Packages failed to restore
2018-10-08T14:44:10.1055895Z ##[section]Finishing: Restore

你在自己的电脑上构建了发布版本吗? - tymtam
尝试将 Microsoft.AspNetCore.App 升级到 2.1.5 版本。 - Brad
为什么不直接使用dotnet publish来隐式还原包,而要将NuGet直接用作阶段呢? - Judy007
我根据在GitHub上发现的关于依赖项的Bug添加了Nuget。 - Steve Coleman
我在我的电脑上构建了发布版本以确保它可以正常工作。 - Steve Coleman
3个回答

8
解决方法 编辑于2019年7月5日 YML文件或编辑器与.netcore SDK版本存在相同问题。我已经多次更新了我的SDK版本,但当核心SDK团队推送Nuget更新、您更新VS或有时...时,它会突然崩溃。我的构建是自动化的,今天它可以工作,明天就不行了,即使没有修改任何代码。但是我总是回到这个修复程序,然后它又可以构建了。
在VS2017中获取您的SDK版本 输入图像描述 在DevOps中设置您的版本 输入图像描述

1
这个和更高版本的NuGet,例如ASP.NET Core 2.2.105 + Nuget 4.9.4可以工作。 - Edward Olamisan

3
我建议您检查以下2个项目:
  1. 在本地构建RELEASE并查看是否重现了该问题。
  2. 在VSTS中明确NuGet版本: enter image description here

    enter image description here


在发布模式下构建后,我按照以下方式调用nuget。除了我现在正在调用4.4.1,之前是调用4.3.0...但这并没有帮助。 - Steve Coleman

1

对于那些通过YAML文件进行配置的人:我也遇到了这些问题,但这是因为我只是从其他地方复制了一个部署的YAML文件,并没有使用正确的工具。在遵循本教程后,它可以完美运行:

https://learn.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops

更具体地说,我认为使用dotnet restore来恢复您的软件包可能会解决这个问题。
steps:
- script: dotnet restore

请确保安装正确的.NET Core SDK。

steps:
- task: DotNetCoreInstaller@0
  inputs:
    version: '2.1.300' # replace this value with the version that you need for your project

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接