Можно ли выйти из этого сценария Nuget Hell? - PullRequest
0 голосов
/ 04 октября 2018

Я хочу, чтобы в моем проекте были следующие пакеты

  • Microsoft.Azure.ServiceBus
  • Microsoft.Azure.WebJobs.Extensions
  • Microsoft.Azure.WebJobs.Extensions.Storage
  • Microsoft.Azure.WebJobs.ServiceBus
  • Microsoft.NET.Sdk.Functions
  • .NETStandard Library
  • Newtonsoft.Json

Сейчас у меня самые последние версии

  • Microsoft.Azure.ServiceBus (3.1.1)
  • Microsoft.Azure.WebJobs.Extensions (3.0.0)
  • Microsoft.Azure.WebJobs.Extensions.Storage (3.0.0)
  • Microsoft.Azure.WebJobs.ServiceBus (v3.0.0-beta8)
  • Microsoft.NET.Sdk.Functions (1.0.22)
  • .NETStandard Library (2.0.1)
  • Newtonsoft.Json (11.0.2)

, которые имеютследующие зависимости WebJobs:

  • Microsoft.Azure.ServiceBus [Нет]
  • Microsoft.Azure.WebJobs.Extensions [Microsoft.Azure.WebJobs (> = 3.0.0)]
  • Microsoft.Azure.WebJobs.Extensions.Storage [Microsoft.Azure.WebJobs (> = 3.0.0)]
  • Microsoft.Azure.WebJobs.ServiceBus [Microsoft.Azure.WebJobs (= 2.2.0)]
  • Microsoft.NET.Sdk.Functions [Microsoft.Azure.WebJobs (> = 3.0.0 && <3.1.0)] </li>
  • .NETStandard Library [Нет]
  • Newtonsoft.Json[Нет]

Интересно, что Visual Studio не помечает это как проблему (желтых треугольников в Solution Explorer нет), хотя существуют явно противоречивые требования к версии.Когда я пытаюсь создать свой проект Function App, я получаю сообщение об ошибке

Код серьезности Описание Ошибка состояния подавления строки файла проекта System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'Microsoft.Azure.WebJobs,Версия = 3.0.0.0, Культура = нейтральная, PublicKeyToken = null 'или одна из ее зависимостей.Система не может найти указанный файл.Имя файла: 'Microsoft.Azure.WebJobs, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = null' в System.ModuleHandle.ResolveType (модуль RuntimeModule, тип IntToken типа Int32, IntPtr * typeInstArgs, тип IntIntCount Int32, IntPstC * methodInstgs), Int32 typeInstCount, IntPtr * methodInstgs, Тип ObjectHandleOnStack) в System.ModuleHandle.ResolveTypeHandleInternal (модуль RuntimeModule, тип IntToken Int32, RuntimeTypeHandle [] typeInstantiationContext, RuntimeTypeHandle [] methodInstantiationContext)System.Reflection.CustomAttribute.FilterCustomAttributeRecord (CustomAttributeRecord caRecord, MetadataImport сфера, сборка и lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, булева mustBeInheritable, Object [] атрибуты, IList derivedAttributes, RuntimeType & AttributeType, IRuntimeMethodInfo & CTOR, булевы & ctorHasParameters, булевы &isVarArg) при System.Reflection.CustomAttribute.GetCustomAttributes (RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, булева mustBeInheritable, IList derivedAttributes, булева isDecoratedTargetSecurityTransparent) при System.Reflection.CustomAttribute.GetCustomAttributes (параметр RuntimeParameterInfo, RuntimeType caType) в системе.Attribute.InternalParamGetCustomAttributes (ParameterInfo param, тип Type, логическое наследование) в MakeFunctionJson.ParameterInfoExtensions.GetDisabledAttribute (ParameterInfo parameterInfo) в System.Linq.Enumerable.WhereSelectArrayIterator * System.No.Fext_RoF_ToF_RoTF_RoT_RoF_RoT_RoTF)(IEnumerable 1 source)<br> 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)<br> at System.Linq.Enumerable.ToList[TSource](IEnumerable 1 source) в MakeFunctionJson.FunctionJsonConverter.TryGenerateFunctionJsons ()
в MakeFunctionJson.FunctionJsonConverter.TryRun ()

WRN: регистрация привязки сборки отключена,Чтобы включить привязку сборкиведение журнала ошибок, установите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) равным 1. Примечание. С журналированием ошибок привязки сборки связано некоторое снижение производительности.Чтобы отключить эту функцию, удалите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

Ошибка генерации метаданных функций

Любой выход из этого Nuget Hell или можетЯ не использую все эти пакеты?Я пытался просмотреть предыдущие версии, и, похоже, нет никакого способа заставить их всех согласиться с версией WebJobs.Как обычно разрешают эти ситуации?

1 Ответ

0 голосов
/ 04 октября 2018

Удалить Microsoft.Azure.WebJobs.ServiceBus, новый пакет теперь называется Microsoft.Azure.WebJobs.Extensions.ServiceBus(3.0.0).См. ссылки на пакеты в функциях v2.

Кроме того, Microsoft.NET.Sdk.Functions(1.0.22) содержит Newtonsoft.Json(11.0.2) и Microsoft.Azure.WebJobs.Extensions (3.0.0), нет необходимости устанавливать их отдельно.И Microsoft.Azure.WebJobs.Extensions.ServiceBus(3.0.0) также содержит Microsoft.Azure.ServiceBus(3.0.2), вам также не нужно устанавливать его, если не требуется последняя версия.

Например, вы можете создать шаблон триггера служебной шины v2 в VS инужно всего лишь добавить Microsoft.Azure.WebJobs.Extensions.Storage (3.0.0) для достижения своей цели.

...