Не удается найти физический каталог для виртуального пути, в Windows Azure SDK проекта 1.8

Я обновил Windows Azure SDK с V1.7 до V1.8

До обновления часть моего конфига была

<Site name="Web">
    <VirtualApplication name="MyprojectService"        physicalDirectory="../../Myproject.Hosts.WebHost" />
</Site>

После обновления SDK

Я получаю следующую ошибку.

Ошибка 1 Не удается найти физический каталог 'D:\Projects\Myproject\branch \Release_092012\Hosts\Myproject.Hosts.AzureHost\MyprojectAzureHost\Myproject.Hosts.WebHost' для виртуального пути Web/MyprojectService/. D:\Projects\Myproject\branch \Release_092012\Hosts\Myproject.Hosts.AzureHost\MyprojectAzureHost\bin\Release\ServiceDefinition.csdef 1 1 MyprojectAzureHost

Я прошел по ссылке Azure Service.Csdef. и я добавил "../" к пути:

<Site name="Web">
    <VirtualApplication name="MyprojectService"        physicalDirectory="../../../Myproject.Hosts.WebHost" />
</Site>

но когда я делаю пакет, он автоматически удаляется, и я снова и снова получаю вышеуказанную ошибку.

Я также попытался поставить полный путь "D:/Projects/../Myproject.Hosts.WebHost", но без блокировки.

Он отлично работал в SDK 1.7. но не работает в SDK 1.8

2 ответа

Решение

Я попытаюсь объяснить изменения между двумя последними Windows Azure SDK (с помощью того же примера приложения), как показано ниже, поэтому, пожалуйста, посмотрите на каждый случай и путь, указанный в сообщении об ошибке:

В предыдущем SDK для источника виртуального каталога было задано значение по умолчанию в корне проекта, однако теперь в последнем SDK источник виртуального каталога установлен в выходном каталоге проекта, который вы можете видеть в первом случае ниже.

Случай 1: (не удалось)

<VirtualApplication name="MyWeb" physicalDirectory="MvcWebRole1">

Error: Cannot find the physical directory 
    'C:\Users\avkashc\Documents\Visual Studio 2012\Projects\WindowsAzure2012\WindowsAzure2012\bin\Release\MvcWebRole1' for virtual path Web/MyWeb/.

Случай 2: (не удалось)

 <VirtualApplication name="MyWeb"  physicalDirectory="..\MvcWebRole1">

 Error: Cannot find the physical directory 'C:\Users\avkashc\Documents\Visual Studio 2012\Projects\WindowsAzure2012\WindowsAzure2012\bin\MvcWebRole1' for virtual path Web/MyWeb/.

Случай 3: (не удалось)

 <VirtualApplication name="MyWeb"  physicalDirectory="..\..\MvcWebRole1">

 Error: Cannot find the physical directory 'C:\Users\avkashc\Documents\Visual Studio 2012\Projects\WindowsAzure2012\WindowsAzure2012\MvcWebRole1' for virtual path Web/MyWeb/.

Дело 4: (Успех)

 <VirtualApplication name="MyWeb"
                     physicalDirectory="..\..\..\MvcWebRole1">

Поскольку вышеупомянутый параметр папки случая № 4 совпадает с моей фактической структурой папки MvcWebRole1 (см. Ниже), именно поэтому параметр "......" работает в моем параметре "PhysicalDirectory".

Вам нужно будет пройтись по структуре папок от release* в качестве источника, а затем отследить весь путь, где бы он ни существовал, и затем собрать полный путь.

введите описание изображения здесь

sudhAnsu63, извините это доставило вам неприятности.

При обновлении проекта с относительными путями в csdef (как здесь происходит) до 1.8 SDK вы должны увидеть предупреждение ниже в журнале обновлений об изменении относительного пути. Это конкретное изменение было сделано для лучшей поддержки параллельных сборок.

Атрибут physDirectory элемента Site содержит относительный путь. Этот путь относится к каталогу, в котором находится целевой файл определения службы при упаковке. В предыдущих версиях этот файл находился в корневом каталоге проекта. В этой версии по умолчанию этот файл находится в выходном каталоге проекта. Вам может потребоваться обновить относительный путь, чтобы отразить новое местоположение целевого файла определения сервиса.

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