如何在谷歌云上安装更新的dotnet核心sdk

时间:2017-08-26 12:09:33

标签: asp.net-core google-cloud-platform

我最近一直在研究.net核心2.0网络应用程序,并考虑在谷歌云上使用谷歌的App Engine来托管它,但根据教程,谷歌云使用的.net核心1.0不支持我的项目。 有没有什么方法可以在云上使用更新的sdk运行应用程序?

3 个答案:

答案 0 :(得分:3)

可悲的是,教程已经过时了。我们现在每天都有.NET Core 1.0,1.1和2.0的运行时映像。我们正在阅读我们的文档并修复它,但这需要一段时间。

根据此更新quickstart中的说明,您需要有一个最小的app.yaml,例如:

env: flex
runtime: aspnetcore

然后,从项目的根目录运行:

dotnet restore
dotnet publish -c Release

将app.yaml复制到发布流程的输出,通常为bin\Release\netcore2.0\publish,然后使用以下内容部署您的应用:

gcloud beta app deploy bin\Release\netcore2.0\publish\app.yaml

此命令将检测您正在使用的.NET Core版本,并为您构建适当的Docker镜像。

请注意,App Engine Flexible中的.NET Core支持仍然处于测试阶段,我们很快就很难去GA。

答案 1 :(得分:0)

您可以将应用程序部署为自包含应用程序,然后可以在未安装运行时的情况下运行它。

它在ASP.NET核心文档Self-contained deployment without third-party dependencies

中有很好的描述

归结为将<RuntimeIdentifier><RuntimeIdentifiers>元素添加到csproj文件中。

<PropertyGroup>
    <RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>

并执行dotnet restore,然后是dotnet build

最后,您可以将其发布到上面定义的平台之一:

dotnet publish -c Release -r win10-x64
dotnet publish -c Release -r osx.10.11-x64

自我部署将从nuget下载所有必需的文件,这包括.NET Core运行时并将其放入输出文件夹。

答案 2 :(得分:0)

第1部分

确保您具有以下两个文件

  • app.yaml
  • Dockerfile

,其内容显示在项目的根目录下。

app.yaml

env: flex
runtime: custom

Dockerfile

FROM [DOCKER_IMAGE_URL]
COPY . /app
WORKDIR /app
EXPOSE 8080
ENV ASPNETCORE_URLS=http://*:8080
ENTRYPOINT ["dotnet", "[NAME_OF_PROJECT].dll"]

请记住将[NAME_OF_PROJECT]替换为项目名称,并将[DOCKER_IMAGE_URL]替换为以下网址之一:

https://hub.docker.com/_/microsoft-dotnet-core-aspnet/

例如:mcr.microsoft.com/dotnet/core/aspnet:3.0 for ASP.NET Core 3.0

第2部分

要使我们在第1部分中创建的文件可以使用,需要在运行build命令时将它们复制到output / build目录。

这可以通过添加以下内容来完成

<ItemGroup>
  <None Include="app.yaml"   CopyToOutputDirectory="PreserveNewest" />
  <None Include="Dockerfile" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

到您的.csproj文件。

现在,当我们运行build命令时,对于发行版,它们将被复制到./bin/Release/netcoreapp[VERSION]/publish中,对于调试版本,它们将被复制到./bin/Debug/netcoreapp[VERSION]中。

其中[VERSION]是您使用的ASP.NET Core版本。

第3部分

从此处,使用Google Cloud SDK as usual.

进行部署

感谢:

  1. https://www.youtube.com/watch?v=tZRam__Bx6o
  2. https://cloud.google.com/appengine/docs/flexible/dotnet/runtime
  3. https://docs.docker.com/engine/examples/dotnetcore/
  4. https://cloud.google.com/blog/products/gcp/4-ways-you-can-deploy-an-aspnet-core-app-to-gcp
相关问题