2017-08-26 115 views
0

最近我一直在研究一個.net核心2.0的網絡應用程序,並想到谷歌雲上使用谷歌的App Engine來託管它,但根據教程,谷歌雲使用.net核心1.0不支持我的項目。 有什麼辦法可以運行在雲上使用較新的SDK製作的應用程序?如何在谷歌雲上安裝較新的dotnet核心sdk

回答

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核心運行時,放入輸出夾。

2

不幸的是,教程已過時。我們現在有一個.NET Core 1.0,1.1和2.0的運行時圖像。我們正在審閱我們的文檔並修復它,但這需要一段時間。

在這個更新的​​說明你需要有一個最小的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。