Не удалось загрузить файл или сборку Microsoft.Значение applicationserver.Кэширование.Ядро
Я пытаюсь использовать Windows Предварительный Просмотр Кэширования Azure.
У меня есть одна выделенная рабочая роль кэша, одна webrole, которая использует бывший кэш, и одна рабочая роль, которая постоянно обновляет кэш.
я следовал инструкции по руководству Windows Azure но я все равно получаю ошибку:
не удалось загрузить файл или сборку 'Microsoft.Значение applicationserver.Кэширование.Ядро, версия=1.0.0.0, культуры=нейтральный, PublicKeyToken=31bf3856ad364e35' или одна из его зависимостей. Определение манифеста сборки расположены не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Я дважды трижды проверил 1000000 зависимостей, есть правильные.
Я заметил, что было два набора DLL : те версии 1.0.0.0, которые я хочу использовать, и другая версия 101.0.0.0, которую я не хочу.
Я добавил BindingRedirect
заявление ко всем моим .config на карте 101 версии 1.0.0.0
Я проверил bin папка, декомпилированная DLL с Jetbrains, они верны.
Я начинаю терять терпение. Почему .NET не принимает DLL, которую я указываю, когда я ставлю явный путь ?
3 ответов
Ok Я нашел другой способ : Я только что переименовал C:\Program файлы\Microsoft SDKs\Windows Azure.NET SDK\2012-06\ref\Microsoft.Значение applicationserver.Кэширование.Ядро.dll для Microsoft.Значение applicationserver.Кэширование.Ядро.dll_old.
Мне этого было достаточно.
вот более конкретное описание этой проблемы : кажется, он отлично работает при принятии проектов по отдельности: у меня есть 3 рабочие роли и одна веб-роль. Каждый раз, когда я создаю свой проект Один за другим, я вижу правильную dll в выходных данных каталог, у меня проблема только с облачным пакетом Windows Azure, похоже, игнорирует директиву BindingRedirect.
просто предложение хранить в соответствующем месте.
Я столкнулся с проблемой, описанной в questiuon, только разница в том, что он не смог найти кэширование.Клиент вместо кэширования.Ядро. Я попытался удалить библиотеки в папке SDK ref, как было предложено в предыдущем ответе, но это не помогло.
во всяком случае, мое решение кажется довольно конкретным.
что помогло в моем случае, так это то, что я нашел некоторые библиотеки, на которые не ссылались, но они были найден среди пакетов в единственной среде, где работал мой проект. Вот они: * Система.Сеть.Услуги поставщиков.1.1 * Система.Сеть.Услуги поставщиков.Ядро.1.0
их не хватало в пакетах.конфигурационный файл по какой-то причине, поэтому они не могут быть обновлены из канала nuget. Поэтому вы можете попробовать ссылаться на них напрямую или другим способом, чтобы сделать их доступными для проекта, который вы пытаетесь запустить.
AppFabric не настроен на регистрацию собственных библиотек DLL после установки.
вы должны вручную зарегистрировать их. Запустите это в powershell, чтобы исправить все:
Set-location "C:\Program Files\AppFabric 1.1 for Windows Server"
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.ApplicationServer.Caching.Core.dll")
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.ApplicationServer.Caching.Client.dll")
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.WindowsFabric.Common.dll")
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.WindowsFabric.Data.Common.dll")
iisreset