При запуске моего проекта .NET Я получаю следующее сообщение об ошибке во время выполнения:NuGet пакет GAC зависимость
Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Из того, что я понимаю, Microsoft.WindowsAzure.ServiceRuntime
является зависимость GAC и не доступна на NuGet.
Мой проект .NET ссылается на 2.5.0.0 ServiceRuntime из Azure SDK 2.5. Стектура исключения показывает, что один из наших настраиваемых пакетов NuGet ссылается на 2.4.0.0.
При взгляде на зависимости пакета 'NuGet, он не показывает ServiceRuntime, который я предполагаю, потому что это ссылка GAC (то, что NuGet не может решить):
я обнаружил, что добавив следующее web.config
изменения, теперь он работает:
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.ServiceRuntime" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.0.0" newVersion="2.5.0.0" />
</dependentAssembly>
Я бы предположил, что это работает только если 2.5.0.0 обратно совместим с 2.4.0.0 спецификации.
Вопросы:
- Что случилось бы, если бы не был обратно совместим?
- Почему не
Microsoft.WindowsAzure.ServiceRuntime
пакет NuGet?
Nuget, безусловно, не предназначен только для сторонних библиотек. У Microsoft даже есть собственный канал в nuget - https://www.nuget.org/profiles/microsoft - в настоящее время содержится более 1100 пакетов. –
MS не предоставляет основные библиотеки .Net через Nuget, библиотеки, упомянутые в ссылке, являются дополнительными библиотеками для дополнительной функциональности, которые во многих случаях имеют стороннего конкурента или могут быть переопределены для изменения текущей реализации. –
В ссылка, на которую я ссылался, вы увидите довольно много библиотек, которые можно было бы считать ядром. Например, MVC, WebApi, OData, Razor, Owin и EntityFramework. Но вы наверняка правы в этом для некоторых вещей, мы, к сожалению, все еще должны установить SDK's ++ –