Обновлено до VS 2015, Azure 2.7, ошибка публикации "Доступ к пути запрещен"

У меня есть проект облачной службы с тремя рабочими ролями. Раньше (VS 2013, Azure 2.5) все публиковалось нормально. Когда VS 2015 был доступен, я установил его на чистую виртуальную машину, а затем установил Azure 2.7. Я продвигал свое старое решение, и теперь я могу создавать и запускать локально. Я могу построить проект облачного сервиса. Но когда я пытаюсь опубликовать или упаковать, я получаю следующую ошибку, и сборка не выполняется.

Ошибка:

Доступ к пути 'C: \ Users [имя пользователя] \ AppData \ Local \ Temp \ 3xhd2e4m.wlw \ roles [имя роли] \ base \ x86 \ msshrtmi.dll »запрещен. C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Windows Azure Tools \ 2.7 \ Microsoft.WindowsAzure.targets 3003

Когда захожу в Temp - нет каталога, соответствующего 3xhd2e4m.wlw.

Мои попытки разрешения до сих пор включают:

Удаление рабочих ролей из решения и попытка публикации - сбой с той же ошибкой для оставшегося проекта. Удален доступ только для чтения из temp Пытался настроить все для сборки x64. Мне действительно нужна помощь, так как это блокирует развертывание и тестирование.


person KVD    schedule 23.07.2015    source источник


Ответы (3)


У меня точно такая же проблема. Согласно ответу в другом сообщении (Развертывание в Azure: доступ к пути ... msshrtmi.dll запрещен), проблема связана с проблемой с Azure SDK 2.7 и будет решена в версии 2.7.1, которая должна быть выпущена. в ближайшее время.

Проблема возникает только при попытке публикации с 32-разрядной машины. Переход на 64-битную машину должен работать.

person Bruno Cunha e Silva    schedule 27.08.2015

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

Итак, на ум приходят два варианта:

  1. Создайте новый пустой проект рабочей роли с одной стандартной рабочей ролью и убедитесь, что он правильно публикует / пакеты. Это подтвердит, работает ли эта функция в VS2015 с Azure SDK 2.6.
  2. Если (1) работает, рассмотрите возможность добавления одного из ваших существующих проектов рабочих ролей в пустой проект рабочих ролей в (1) и попробуйте процесс публикации / упаковки еще раз.

Мне трудно поверить, что парни из Microsoft пробовали путь обновления с v2.5 -> v2.6 SDK для рабочих ролей ... Я проверил примечания к выпуску v2.6, и там не появляется быть критическими изменениями, связанными с этой проблемой: https://azure.microsoft.com/en-gb/documentation/articles/azure-sdk-dotnet-release-notes-2_6/

person Nick Heppleston    schedule 24.07.2015
comment
Оцените попытку помочь, но я попробовал вариант №1, и ошибка все еще сохраняется. Я также начал полностью чистое решение для проекта облачной службы с веб-ролью и рабочей ролью, и проблема снова сохраняется. - person KVD; 24.07.2015
comment
Тогда вам, вероятно, нужно сообщить о дефекте в Microsoft. Облом. - person Nick Heppleston; 24.07.2015
comment
Спасибо, Ник ... Они уже в курсе. - person KVD; 26.07.2015

Я только что столкнулся с той же проблемой и потерял из-за этого несколько клеток мозга.

У меня есть определенный каталог в моем ServiceDefinition.csdef, который содержит все файлы, которые я пытаюсь скопировать во время публикации облачной службы для моих задач запуска, и в итоге я также включил некоторые файлы .dll. Я получал ту же ошибку, что и OP этого вопроса, и через некоторое время обнаружил, что просто не могу включить файлы * .dll в свой путь к SourceDirectory. Я мог нормально включать файлы .cmd, но .dll и .config не годились.

Исключить их из моего проекта было недостаточно, просто того факта, что файлы были в этом каталоге, было достаточно, чтобы VS кричал на меня.

На данный момент я только что поместил все вредоносные файлы в zip и отправляю zip-файл в своем развертывании, так что это обходной путь, но он был болезненным, пока я не понял этого.

Надеюсь это поможет..

person ewitkows    schedule 03.05.2018