Azure功能上的升级错误

问题描述 投票:0回答:1

尝试升级Azure功能项目时,我们收到此错误。这是我们得到的日志文件

恢复包

C:\Users\User\Source\Repos\xxx_FileService\xxx.AzureFunctions\xxx.AzureFunctions\SE.AzureFunctions.csproj...
Detected package version outside of dependency constraint: Microsoft.NET.Sdk.Functions 1.0.7 requires Newtonsoft.Json (= 9.0.1) but version Newtonsoft.Json 10.0.3 was resolved.
Detected package downgrade: Microsoft.Azure.WebJobs from 2.1.0-beta4 to 2.1.0-beta1. Reference the package directly from the project to select a different version. 
 xxx.AzureFunctions -> Microsoft.NET.Sdk.Functions 1.0.7 -> Microsoft.Azure.WebJobs (= 2.1.0-beta4) 
 xxx.AzureFunctions -> Microsoft.Azure.WebJobs (>= 2.1.0-beta1)
Detected package downgrade: Microsoft.Azure.WebJobs.Extensions from 2.1.0-beta4 to 2.1.0-beta1. Reference the package directly from the project to select a different version. 
 xxx.AzureFunctions -> Microsoft.NET.Sdk.Functions 1.0.7 -> Microsoft.Azure.WebJobs.Extensions (= 2.1.0-beta4) 
 xxx.AzureFunctions -> Microsoft.Azure.WebJobs.Extensions (>= 2.1.0-beta1)
Detected package downgrade: Microsoft.Azure.WebJobs.Extensions.Http from 1.0.0-beta4 to 1.0.0-beta1. Reference the package directly from the project to select a different version. 
 xxx.AzureFunctions -> Microsoft.NET.Sdk.Functions 1.0.7 -> Microsoft.Azure.WebJobs.Extensions.Http (= 1.0.0-beta4) 
 xxx.AzureFunctions -> Microsoft.Azure.WebJobs.Extensions.Http (>= 1.0.0-beta1)
Package restore failed. Rolling back package changes for 'SE.AzureFunctions'.
Time Elapsed: 00:00:00.3832626
========== Finished =========

CSPROJ中的软件包参考

<Project Sdk="Microsoft.NET.Sdk">   <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <AssemblyName>SE.AzureFunctions</AssemblyName>
    <RootNamespace>SE.AzureFunctions</RootNamespace>   </PropertyGroup>   <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs" Version="2.1.0-beta1" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="2.1.0-beta1" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Http" Version="1.0.0-beta1" />
    <PackageReference Include="Microsoft.Azure.WebJobs.ServiceBus" Version="2.1.0-beta1" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.0-alpha6" />
    <PackageReference Include="Newtonsoft.Json" Version="10.0.2" />
    <PackageReference Include="StyleCop.Analyzers" Version="1.1.0-beta004" />   </ItemGroup>   <ItemGroup>
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Configuration" />   </ItemGroup>   <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>   </ItemGroup> </Project>
azure nuget updates azure-functions
1个回答
2
投票

我将尽力为您提供您遇到挑战的背景,并为您提供解决方案。

问题背景:

您遇到此错误的原因有两个:

  1. 微软降级了以下软件包(因为我确信您收到的错误消息可能已经让您了解到): 一个。从2.1.0-beta42.1.0-beta1的Microsoft.Azure.WebJobs 湾Microsoft.Azure.WebJobs.Extensions.Http从1.0.0-beta4到1.0.0-beta1
  2. .NET Core 2.0.0 Preview 2 - 降级警告已经成为错误。这意味着它们被配置为将警告NU1605视为错误。这不是在他们的release notes中公开的,但如果你查看任何项目的属性页面,这些项目是模板化的.Net Core 2.0.0 Preview 2(就像我怀疑你的项目一样),你会注意到在Build项目属性下表格,警告NU1605现在被视为错误(请参阅将警告视为错误部分)。现在让我们在其中添加一个引脚,因为我们需要深入到下面提出的解决方案中的项目属性页面。

建议的解决方案(注意这是一个解决方法!):

是的,您已经猜到了,您需要将项目配置为不将NU1605警告视为错误。为此,请按照下列步骤操作:

  1. 打开项目的属性页面,
  2. 转到Build属性表
  3. 向下滚动到Treat Warnings as errors部分,并从Specific Warnings无线电盒部分清除NU1605值。 (见下面的屏幕抓取)

clear NU1605 warning as an error

  1. 保存并重建您的项目(当您保存项目属性页更改时,Nuget可能实际上会尝试自动还原包 - 如果它不这样做或者如果还原“失败”,只需重建项目,你应该没问题)

Conclusions

我确信微软有理由将强制降级警告NU1605作为一个错误,所以不要将这个警告的禁止作为一种错误作为对这种策略的全面认可;相反,我们将此建议视为解决我们在选择使用预发布或测试版代码时必然会遇到的问题。

我希望是最终的候选版本,这些类型的依赖性问题中的大多数都已经解决,并且这些工作不会是必要的,但同时,为了保持你的alpha / beta /实验开发向前发展,这个工作应该做。

希望这有助于你和快乐的编码(哦,是的,新年快乐!)

© www.soinside.com 2019 - 2024. All rights reserved.