【问题标题】:Cannot find the physical directory for virtual path, in Windows Azure project SDK 1.8在 Windows Azure 项目 SDK 1.8 中找不到虚拟路径的物理目录
【发布时间】:2012-11-16 13:33:41
【问题描述】:

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

升级前我的配置部分是

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

SDK升级后

我收到以下错误。

错误 1 ​​找不到物理目录 '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

【问题讨论】:

  • “当我制作一个包时,它会被自动删除”——这是什么意思?究竟会发生什么?将路径更改为../../../ 的修复对我来说效果很好。
  • @JcFx 我正在使用 WebDeveloper 2011 Express。单击 Azure 项目中的包选项后,我收到一个消息窗口,显示 “文件已在源编辑器之外修改。你想重新加载它?” 对话。
  • 您实际上将 ..\ '添加'到路径中。没有“附加”。

标签: asp.net .net azure azure-packaging


【解决方案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”设置中有效。

您需要从作为源的 release* 浏览您的文件夹结构,然后一直回溯到它存在的位置,然后组装完整路径。

【讨论】:

  • 我也给出了路径写入路径,但由于某些无效引用而发生了更改。现在它正在工作。
【解决方案2】:

sudhAnsu63,很抱歉给您带来了麻烦。

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

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

【讨论】:

  • 它现在正在工作。我已经给出了所需的路径,但由于某种原因被修改了。我在控制面板中启用了跟踪并在自动修复后进行了调试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
相关资源
最近更新 更多