我正在尝试使用GitHub部署选项将样板Visual Studio 2017 RC Asp.Net Core Web应用程序(无身份验证)部署到Azure App Service。该应用程序尚未从样板代码中修改;从字面上看:从VS模板创建一个新应用程序,将其发布到GitHub,然后部署到App Service。
问题
VS 2017 RC应用程序是否需要进行任何特定设置才能部署到App Service,或者App Service SCM(Kudu)工具是否还没有赶上VS 2017 RC项目结构?
详情
我遇到了两个我认为可能相关的问题。
问题1 :MSbuild工具v15.0似乎未在应用服务上安装。在构建时,Kudo默认为v14.0:
Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling .NET Console Application deployment.
MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin'.
我添加了custom app setting,SCM_BUILD_ARGS=-tv:15.0
,试图强制Kudo使用v15.0,但这没有效果。它继续像以前一样使用v14.0。
问题2 :(可能是因为使用了MSBuild 14.0):MSBuild在尝试恢复NuGet包时发出以下错误:
Nothing to do. None of the projects in this solution specify any packages for NuGet to restore.
此错误消息有点模糊,但是until recently消息会声明在解决方案中找不到包含packages.config
或project.json
文件的项目。 从VS 2017 RC开始,这两个文件都已弃用。我添加了一个空的project.json文件,看看是否能解决问题。软件包似乎已恢复,但由于缺少project.json部分而继续失败。
解决
@ david-ebbo友善地提供了guidance。在他的test repo中,您会找到deploy.cmd
和.deployment
个文件。将两者都复制到您的仓库的根目录。然后更新deploy.cmd
的第74行,指向您的 .csproj 文件。现在应该从GitHub部署成功。
答案 0 :(得分:2)
与https://github.com/projectkudu/kudu/issues/2236类似。
Kudu脚本生成器还不知道如何处理Preview3,但您应该能够使用自定义部署脚本。关键是使用'dotnet restore'而不是'nuget restore'和'dotnet publish'而不是'msbuild'。请参阅示例here。
我们将尽快修复Kudu。