【发布时间】:2017-02-24 18:33:38
【问题描述】:
我有一个经典的云服务项目,它在单个服务上有多个网站,在 ServiceDefinition.csdef 中配置如下:
<WebRole name="PE.Roles.API" vmsize="Small">
<Sites>
<Site name="API" physicalDirectory="..\..\..\PE.Roles.API">
<Bindings>
<Binding name="http" endpointName="PE.API" />
</Bindings>
</Site>
<Site name="PE.Services.Authorization" physicalDirectory="..\..\..\PE.Services.Authorization">
<Bindings>
<Binding name="http" endpointName="PE.Services.Authorization" />
</Bindings>
</Site>
<!-- Etc -->
</Sites>
</WebRole>
这会在 Visual Studio 2015 中正确编译和打包,并从预编译的 .cspkg 文件毫无问题地部署到云服务。
我们最近迁移到 Visual Studio Team Services for DevOps,我正在尝试使用提供的 Azure 云服务构建模板设置此解决方案以在云中构建和部署。
.sln 构建步骤正确完成,但 .ccproj 构建步骤失败并出现以下错误:
PE.Azure\bin\ServiceDefinition.csdef (0, 0)
PE.Azure\bin\ServiceDefinition.csdef(0,0): Error CloudServices079: Cannot find the physical directory 'D:\a\1\PE.Roles.API' for virtual path API/.
Process 'msbuild.exe' exited with code '1'.
我的构建参数是:/t:Publish /p:TargetProfile=$(targetProfile) /p:DebugType=None /p:SkipInvalidConfigurations=true /p:OutputPath=bin\ /p:PublishDir="$(build.artifactstagingdirectory)\\"
我发现许多博客文章和 SO 问题都涵盖了类似的问题,但没有一个能准确解决这个问题(过去几年也没有任何发布过)。
更新
我已经为该项目创建了一个 TFVC 存储库并实施了映射步骤,如下所示:
我需要做什么才能让它工作?
【问题讨论】:
-
几年前我有这个问题stackoverflow.com/questions/16869047/…当时我认为我最终选择了手动发布。后来 MS 说它在 VS 2015 visualstudio.uservoice.com/forums/330519-team-services/… 中受支持,但现在给出的链接是 404。因为如今此类网络应用比 webroles 更受欢迎。
-
谢谢。我们暂时被 webroles 困住了。我确实看到了您的问题,但我希望 MS 可能在过去四年中实现了这一点。
-
你可能也看过这篇文章。它说代码库是最新的。但它并没有真正谈论 VSO.. azure.microsoft.com/en-in/resources/samples/…
标签: azure msbuild azure-devops azure-cloud-services