Azure功能上的升级错误

时间:2017-12-12 13:28:10

标签: azure nuget updates azure-functions

尝试升级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 =========

CS.PROJ中的包参考

<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>

1 个答案:

答案 0 :(得分:2)

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

问题背景:

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

  1. 微软降级了以下软件包(因为我确定您收到的错误消息可能已经让您了解到):

    一个。 Microsoft.Azure.WebJobs从2.1.0-beta4 2.1.0-beta1

    湾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 现在被视为错误(请参阅将警告视为错误部分)。现在让我们在其中添加一个引脚,因为我们需要深入到下面提出的解决方案中的项目属性页面。

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

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

    1. 打开项目的属性页
    2. 转到 Build 属性表
    3. 向下滚动至Treat Warnings as errors部分,然后从Specific Warnings单选框部分清除NU1605值。 (见下面的屏幕抓取)
    4. clear NU1605 warning as an error

      1. 保存并重建您的项目(当您保存项目属性页更改时,Nuget可能会实际尝试自动还原包 - 如果它没有这样做或者如果还原&#34;失败&#34; ,只是重建项目,你应该没事)
      2. 结论

        我确信Microsoft有理由强制执行降级警告 NU1605 作为错误,因此请不要将此警告作为一条错误禁用此警告支持这种策略;相反,当我们选择使用预发布测试版代码时,我们会将此建议视为解决我们必然会遇到的问题。

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

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