На веб-сайте Azure отсутствует msshrtmi при сборке и развертывании из TFS

Я пытаюсь выполнить развертывание на веб-сайтах Azure (предварительный просмотр) из TFS (предварительный просмотр). Сборка работает, и веб-сайт развернут, но когда мой код пытается получить доступ к Azure RoleEnvironment, веб-сайт выдает следующее исключение:

Не удалось загрузить файл или сборку 'msshrtmi, версия =1.7.0.0, культура = нейтральная, PublicKeyToken=31bf3856ad364e35' или одна из ее зависимостей. Система не может найти указанный файл.

Я попробовал все решения, предложенные в следующей теме, но не повезло. Я думаю, что это связано с TFS.

Я проверил это:

  • Переустановленный Azure SDK и инструменты
  • Удалены все PlatformTarget из файлов проекта
  • Написал событие после сборки, чтобы удалить msshrtmi.dll
  • Направил все сборки на x64 (-> провалил все модульные тесты на TFS, похоже, x86, даже если разрешить x64 в.testsettings)

Не удалось загрузить файл или сборку "msshrtmi" или одну из ее зависимостей (доступ к хранилищу таблиц Azure)

У меня закончились идеи, как решить эту проблему? У кого-нибудь есть предложения?

3 ответа

Я сталкивался с подобной проблемой в более ранних версиях SDK при выполнении некоторых сборок. Мое решение не было полностью интуитивным. Если я просматриваю каждую из своих конфигураций сборки и выполняю "Чистое решение", то возвращаюсь к конфигурации сборки, которая мне действительно нужна, и создание сборки устраняет эту проблему.

У меня нет объяснения, почему это работает, но после нескольких часов, потянув за волосы, я был просто счастлив найти решение.

После 7 часов умопомрачительных проб и ошибок я наконец исправил это. Проблема заключалась в наличии инструментов Microsoft Windows Azure на июнь 2012 года вместе с инструментами Microsoft Windows Azure на ноябрь 2011 года.

Шаги, которые я выполнил:

  • Удалите инструменты Microsoft Windows Azure для Visual Studio 2012 RC - июнь 2012 г.
  • Установите инструменты Microsoft Windows Azure для Visual Studio 2010 - выпуск за июнь 2012 г.
  • Удалите инструменты Microsoft Windows Azure для Visual Studio 2010 - выпуск за ноябрь 2011 г.
  • Теперь заново откройте проект, который пытался развернуть
  • Visual Studio попытается преобразовать все двоичные файлы ноября 2011 года в выпуск июня 2012 года
  • Как только это будет успешно сделано, перепроверьте все ссылки Microsoft.WindowsAzure, чтобы увидеть, если они версии 1.7.0.0
  • Опубликовать в Azure!

Надеюсь, это кому-нибудь поможет, я так устала, что не буду кодировать следующие 24 часа.

У меня была та же проблема, когда он всегда искал 32-битную версию msshrtmi в 64-битном приложении, вызывая такую ​​ошибку. Я так и не узнал почему, но я создал задачу сборки в своем проекте, которая удаляла бы 32-битный файл, который нарушал работу, из корзины, так что 64-битная была найдена в GAC.

Другие вопросы по тегам