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

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

Я обновил окна Azure SDK от V1.7 до V1.8

Перед обновлением часть моей конфигурации была

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

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

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

Ошибка 1 Не удается найти физический каталог 'D:\Projects\MyProject\ветки\Release_092012\Hosts\Myproject.Hosts.AzureHost\MyprojectAzureHost\Myproject.Hosts.WebHost' для виртуального пути Web/MyprojectService/. D:\Projects\Myproject\branches\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

4b9b3361

Ответ 1

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

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

Случай 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".

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

enter image description here

Ответ 2

sudhAnsu63, Извините, это вызвало у вас неприятности.

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

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