2012-06-23 2 views
9

У меня был проект с ноябрьским SDK 2011 года и недавно обновлен до июня 2012 года. Когда я впервые увидел ошибку, я попытался сделать очевидный - удалить ссылки и добавить более поздние версии, но это не помогло. Как-то кажется, что версия 1.0.0.0 все еще запрашивается. Я также попытался удалить ссылку и добавить старую версию, но не повезло.Исключение после обновления до июня 2012 г. SDK

Вот как это проявляется в моем коде. Первый Trace.WriteLine, который попадет теперь сообщает следующее исключение:

System.IO.FileLoadException был необработанным с помощью кода пользователя Message = Может не загрузить файл или сборку «Microsoft.WindowsAzure.Diagnostics, Version = 1.0. 0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'или - одна из его зависимостей. Определение манифеста локального узла не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040 ) Источник = mscorlib
FileName = Microsoft.WindowsAzure.Diagnostics, Version = 1.0.0.0, Culture = нейтрален, PublicKeyToken = 31bf3856ad364e35 FusionLog ==== информация о состоянии Pre-связывать === LOG : User = NT AUTHORITY \ NETWORK SERVICE LOG: DisplayName = Microsoft.WindowsAzure.Diagnostics, Version = 1.0.0.0, культура = нейтральной, PublicKeyToken = 31bf3856ad364e35 (Полностью указано) LOG: Appbase = файла: /// F :/SVNProjects/myproject/SitePagesWebRole/LOG: начальное PrivatePath = F: \ SVNProjects \ myproject \ SitePagesWebRole \ bin Вызов сборка: (Неизвестно). === LOG: Это связывание начинается с контекста нагрузки по умолчанию. LOG: Использование файла конфигурации приложения: F: \ SVNProjects \ myproject \ SitePagesWebRole \ web.config LOG: Использование файла конфигурации : C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config LOG: Использование файла конфигурации машины от C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ machine.config. LOG: Послеполитическая ссылка: Microsoft.WindowsAzure.Diagnostics, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 LOG: Попытка загрузить новый URL-адрес файл: /// C: /Windows/Microsoft.NET /Framework64/v4.0.30319/Temporary ASP.NET Файлы/root/b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics.DLL. LOG: попытка загрузки нового URL-адреса файл: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Файлы/root/b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics/Microsoft .WindowsAzure.Diagnostics.DLL. LOG: попытка загрузки нового URL-адреса файл: /// F: /SVNProjects/myproject/SitePagesWebRole/bin/Microsoft.WindowsAzure.Diagnostics.DLL. WRN: сравнение названия сборки привело к несоответствию: Незначительное Версия ERR: Не удалось завершить настройку сборки (hr = 0x80131040). Исследование прекращено.

StackTrace: на System.RuntimeTypeHandle.GetTypeByName (имя String, Boolean throwOnError, Boolean IgnoreCase, булевой reflectionOnly, StackCrawlMarkHandle stackMark, булевой loadTypeFromPartialName, типа ObjectHandleOnStack) на System.RuntimeTypeHandle.GetTypeByName (имя String, Boolean throwOnError , булева IgnoreCase, булева reflectionOnly, StackCrawlMark & stackMark, булева loadTypeFromPartialName) на System.Type.GetType (Строка TypeName) на System.Diagnostics.TraceUtils.GetRuntimeObject (String имя класса, тип BaseType, String initializeData) на System.Diagnostics.TypedElement.BaseGetRuntimeObject() в System.Diagnostics.ListenerElement.GetRuntimeObject() в System.Diagnostics.ListenerElementsCollection.GetRuntimeObject() в System.Diagnostics. TraceInternal.get_Listeners() в System.Diagnostics.TraceInternal.WriteLine (сообщение String) в myproject.GameAPI.Login (Int64 fbid, Int64 [] друзья) в F: \ SVNProjects \ myproject \ GameLogic \ GameAPI.cs: строка 119
InnerException:

Как это можно решить?

ответ

14

Проверьте web.config/app.config на все ваши роли. Убедитесь, что вы изменили номер версии для любой ссылки на сборку Microsoft.WindowsAzure.Diagnostics до версии . 1.7.0.0

+0

Именно так. Я не ожидал наличия информации о версии в файле конфигурации, так как вам нужно добавить ссылки. –

2

Все ваши ссылки на сборку лазеров в ваших проектах для роли в сети/работнике должны указывать на версии 1.7.0.0. Ваши файлы ccproj должны содержать

<ProductVersion>1.7</ProductVersion> 

, чтобы убедиться, что экземпляры Azure содержат соответствующие базовые сборки.

Вы также можете проверить, скопировано ли Microsoft.WindowsAzure.Diagnostics на выход/лазурный пакет.

1

Вышеуказанное не сработало для меня (везде я смотрел его 1.7), вместо этого я пошел через каждый проект, удалено и повторно добавил ссылку, которая началась с:

Microsoft.WindowsAzure.* 

Когда вы повторно добавить их убедитесь, что он говорит версию 1.7.

Смежные вопросы