为什么项目找不到Microsoft.Azure.WebJobs 3.0.0.0

时间:2018-10-08 18:53:50

标签: c# azure azure-functions

我在Visual Studio 15.8.6中有一个Azure Functions(v2)项目,该项目安装了Azure Functions和Web作业工具5.2.60618.0。我正在使用ServiceBusTrigger。当我尝试编译项目时,我不断得到:

  

严重性代码描述项目文件行抑制状态   错误System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.Azure.WebJobs,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。该系统找不到指定的文件。   文件名:'Microsoft.Azure.WebJobs,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = null'      在System.ModuleHandle.ResolveType(RuntimeModule模块,Int32 typeToken,IntPtr * typeInstArgs,Int32 typeInstCount,IntPtr * methodInstArgs,Int32 methodInstCount,ObjectHandleOnStack类型)      在System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule模块,Int32 typeToken,RuntimeTypeHandle [] typeInstantiationContext,RuntimeTypeHandle [] methodInstantiationContext)      在System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken,Type [] genericTypeArguments,Type [] genericMethodArguments)      在System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord,MetadataImport范围,Assembly和lastAptcaOkAssembly,RuntimeModule装饰模块,MetadataToken装饰令牌,RuntimeType attributeFilterType,布尔值mustBeInheritable,Object []属性,IList派生属性,RuntimeType&AttributeType,IRuntimeMethodInfo&ctor,      在System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule装饰模块,Int32装饰的MetadataToken,Int32 pcaCount,RuntimeType attributeFilterType,布尔值mustBeInheritable,IList派生属性,布尔值isDecoratedTargetSecurityTransparent)      在System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeParameterInfo参数,RuntimeType caType)      在System.Attribute.InternalParamGetCustomAttributes(ParameterInfo参数,类型,布尔值继承)      在MakeFunctionJson.ParameterInfoExtensions.GetDisabledAttribute(ParameterInfo parameterInfo)      在System.Linq.Enumerable.WhereSelectArrayIterator 2.MoveNext() at System.Linq.Enumerable.WhereEnumerableIterator 1.MoveNext()      在System.Linq.Enumerable.FirstOrDefault [TSource](IEnumerable 1 source) at MakeFunctionJson.MethodInfoExtensions.GetDisabled(MethodInfo method) at MakeFunctionJson.MethodInfoExtensions.HasUnsuportedAttributes(MethodInfo method, String& error) at MakeFunctionJson.FunctionJsonConverter.<GenerateFunctions>d__9.MoveNext() at System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable 1源)处      在MakeFunctionJson.FunctionJsonConverter.TryGenerateFunctionJsons()      在MakeFunctionJson.FunctionJsonConverter.TryRun()

     

WRN:程序集绑定日志记录已关闭。启用程序集绑定   失败日志记录,设置注册表值   [HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)为1。注意:   与程序集绑定失败相关的一些性能损失   记录。要关闭此功能,请删除注册表值   [HKLM \ Software \ Microsoft \ Fusion!EnableLog]。

     

错误生成函数元数据     InSysFunctionDeviceMinuteDataProcessorV2 C:\ Users \ Dr Kurt   Richardson.nuget \ packages \ microsoft.net.sdk.functions \ 1.0.22 \ build \ netstandard1.0 \ Microsoft.NET.Sdk.Functions.Build.targets 39

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

enter image description here

我注意到的一件事是,尽管该项目使用的是.NET Standard v2.0.3,但错误消息是指向包含 netstandard1.0 (... nuget \ packages \ microsoft。 net.sdk.functions \ 1.0.22 \ build \ netstandard1.0 \ Microsoft.NET.Sdk.Functions.Build.targets 3)。 Nuget说,Microsoft.NET.Sdk.Functions v1.0.22针对 .NETStandard,Version = v2.0 。此外,Microsoft.Azure.WebJobs位于 netstandard2.0 文件夹中。这可能是问题吗?还是其他?

2 个答案:

答案 0 :(得分:5)

请参见package references in v2

Microsoft.Azure.WebJobs.ServiceBus重命名Microsoft.Azure.WebJobs.Extensions.ServiceBus,并且Microsoft.Azure.WebJobs包含在Microsoft.NET.Sdk.Functions中,无需单独安装。

请将Azure Functions和Web作业工具更新为latest version(现在是15.10.2009.0)。

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

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

答案 1 :(得分:0)

Microsoft.NET.Sdk.Functions 更新到最新版本