16

我已将 Windows Azure SDK 从 V1.7 升级到 V1.8

在升级之前我的配置部分是

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

SDK升级后

我收到以下错误。

错误 1 ​​找不到虚拟路径 Web/MyprojectService/ 的物理目录 'D:\Projects\Myproject\branches\Release_092012\Hosts\Myproject.Hosts.AzureHost\MyprojectAzureHost\Myproject.Hosts.WebHost'。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

4

2 回答 2

17

我将尝试解释两个最新的 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* 浏览您的文件夹结构,然后一直回溯到它存在的位置,然后组装完整路径。

在此处输入图像描述

于 2012-11-16T20:11:15.213 回答
3

sudhAnsu63,对不起,给您带来了麻烦。

将在 csdef 中具有相对路径的项目(如此处的情况)升级到 1.8 SDK 时,您应该在升级日志中看到以下有关相对路径更改的警告。进行此特定更改是为了更好地支持并行构建。

Site 元素的physicalDirectory 属性包含一个相对路径。此路径相对于打包时目标服务定义文件所在的目录。在以前的版本中,此文件位于根项目目录中。在此版本中,默认情况下,此文件位于项目输出目录中。您可能需要更新相对路径以反映目标服务定义文件的新位置。

于 2012-12-06T23:51:12.417 回答