Не удается найти физический каталог для виртуального пути, в проекте 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
Ответы
Ответ 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 элемента сайта содержит относительный путь. Этот путь относится к каталогу, в котором находится целевой файл определения службы, когда он упакован. В предыдущих версиях этот файл находился в корневой директории проекта. В этой версии по умолчанию этот файл находится в каталоге вывода проекта. Возможно, вам придется обновить относительный путь, чтобы отразить новое местоположение целевого файла определения службы.