C# 为什么项目可以';找不到Microsoft.Azure.WebJobs 3.0.0.0

C# 为什么项目可以';找不到Microsoft.Azure.WebJobs 3.0.0.0,c#,azure,azure-functions,C#,Azure,Azure Functions,我在VisualStudio15.8.6中有一个Azure功能(v2)项目,其中安装了Azure功能和Web作业工具5.2.60618.0。我用的是ServiceBustigger。当我尝试编译项目时,我不断得到: 严重性代码说明项目文件行抑制状态 错误System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Azure.WebJobs,版本=3.0.0.0,区域性=中性,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件

我在VisualStudio15.8.6中有一个Azure功能(v2)项目,其中安装了Azure功能和Web作业工具5.2.60618.0。我用的是ServiceBustigger。当我尝试编译项目时,我不断得到:

严重性代码说明项目文件行抑制状态 错误System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Azure.WebJobs,版本=3.0.0.0,区域性=中性,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。 文件名:“Microsoft.Azure.WebJobs,版本=3.0.0.0,区域性=中性,PublicKeyToken=null” 在System.ModuleHandle.ResolveType(运行时模块模块、Int32 typeToken、IntPtr*typeInstArgs、Int32 typeInstCount、IntPtr*methodInstArgs、Int32 methodInstCount、ObjectHandleOnStack类型) 位于System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule模块、Int32 typeToken、RuntimeTypeHandle[]TypeInstanceContext、RuntimeTypeHandle[]MethodInstanceContext) 位于System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken,类型[]genericTypeArguments,类型[]genericMethodArguments) 在System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord,MetadataImport作用域,Assembly&LastAptCookAssembly,RuntimeModule decoratedModule,MetadataToken decoratedToken,RuntimeType attributeFilterType,Boolean必须不可编辑,Object[]属性、IList-derivedAttributes、RuntimeType和attributeType、IRontimeMethodInfo和ctor、Boolean和ctorHasParameters、Boolean和isVarArg) 位于System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule、Int32 decoratedMetadataToken、Int32 pcaCount、RuntimeType attributeFilterType、Boolean mustBeInheritable、IList derivedAttributes、Boolean isDecoratedTargetSecurityTransparent) 位于System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeParameterInfo参数,RuntimeType caType) 位于System.Attribute.InternalParamGetCustomAttributes(ParameterInfo-param,类型类型,布尔继承) 在MakeFunctionJson.ParameterInfo扩展名.GetDisabledAttribute(ParameterInfo ParameterInfo) 在System.Linq.Enumerable.WhereSelectArrayInterator
2.MoveNext()中
在System.Linq.Enumerable.WhereEnumerableInterator中
1.MoveNext() 在System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable
1源代码)处
在MakeFunctionJson.MethodInfoExtensions.GetDisabled(MethodInfo方法)
在MakeFunctionJson.MethodInfoExtensions.hasunPortedAttributes(MethodInfo方法、字符串和错误)
在MakeFunctionJson.FunctionJsonConverter.d__9.MoveNext()中
位于System.Collections.Generic.List
1..ctor(IEnumerable
1集合)
at System.Linq.Enumerable.ToList[t源](IEnumerable
1源) 在MakeFunctionJson.FunctionJsonConverter.TryGenerateFunctionJsons()中 在MakeFunctionJson.FunctionJsonConverter.TryRun()处

警告:程序集绑定日志记录已关闭。要启用程序集绑定 记录失败,请设置注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)到1。注:有 某些性能损失是否与程序集绑定失败相关 登录中。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]

生成函数元数据时出错 INSYSFunctionDeviceMinutedDataProcessorv2 C:\Users\Dr Kurt Richardson.nuget\packages\microsoft.net.sdk.functions\1.0.22\build\netstandard1.0\microsoft.net.sdk.functions.build.39

尽管它正在抱怨Microsoft.Azure.WebJobs 3.0.0.0丢失,但已安装的软件包中明确列出了它:

我注意到的一件事是,尽管项目使用的是.NET标准v2.0.3,但错误消息引用的路径包含netstandard1.0(…nuget\packages\microsoft.NET.sdk.functions\1.0.22\build\netstandard1.0\microsoft.NET.sdk.functions.build.3)。Nuget表示,Microsoft.NET.Sdk.Functions的v1.0.22面向.NETStandard,Version=v2.0。此外,Microsoft.Azure.WebJobs位于netstandard2.0文件夹中。这可能是问题所在吗?还是别的什么?

请参阅

Microsoft.Azure.WebJobs.ServiceBus
已被重命名为
Microsoft.Azure.WebJobs.Extensions.ServiceBus
Microsoft.Azure.WebJobs
包含在
Microsoft.NET.Sdk.Functions
中,无需单独安装

请将Azure功能和Web作业工具更新到(现在是15.10.2009.0)

使用最新的扩展和模板,当我们创建服务总线触发器时,现在默认的nuget依赖项是

Microsoft.Azure.WebJobs.Extensions.ServiceBus v3.0.0
Microsoft.NET.Sdk.Functions v1.0.22

将Microsoft.NET.Sdk.Functions更新至其最新版本

完美-非常感谢。问题出在Microsoft.Azure.WebJobs.ServiceBus引用上。不确定我从何处获取了v5.2.60618.0-我实际上拥有15.9.02009.0,但将按照您的建议进行更新。非常感谢您这么快的回复,这已经困扰了我好几天了。我在哪里可以了解到从Microsoft.Azure.WebJobs.ServiceBus到Microsoft.Azure.WebJobs.Extensions.ServiceBus的更改?@ProfNimrod抱歉,我添加了官方链接。经历了完全相同的事情。它发布在Azure Functions v2的GA发行说明中,并在几期中提到了它。基本上,如果您使用的是v2,最好是将这些问题和发行说明中的每一点内容都清理掉。“有很多像这样的小陷阱。”杰夫说得对。对于VS开发,更新
Azure函数和Web作业工具对于新函数基本上就足够了,同时更新sdk引用应该可以使旧的v2函数正常工作。我实际上安装了15.9.02009.0的Azure函数和Web作业工具-不确定从何处获取5.2.60618.0。哦。