【发布时间】:2021-03-24 15:06:14
【问题描述】:
当我在 Google Cloud 中部署我的应用时,日志资源管理器中出现错误>工作负载
找不到任何兼容的框架版本
找不到框架“Microsoft.NETCore.App”,版本“3.1.0”。
找到以下框架: 5.0.4 在 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
您可以通过安装指定的框架和/或 SDK 来解决问题。
指定的框架可以在:
我的 Dockerfile:
FROM mcr.microsoft.com/dotnet/sdk
COPY . /app
WORKDIR /app
RUN dotnet publish -c Release -o out
COPY /out .
ENTRYPOINT ["dotnet", "Test.dll"]
这是应该运行的代码
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace Server
{
class Program
{
private static TcpListener tcpListener;
public static void Main(string[] args)
{
tcpListener = new TcpListener(IPAddress.Any, 26950);
tcpListener.Start();
tcpListener.BeginAcceptTcpClient(TCPConnectCallback, null);
Console.ReadKey();
}
private static void TCPConnectCallback(IAsyncResult _result)
{
TcpClient _client = tcpListener.EndAcceptTcpClient(_result);
tcpListener.BeginAcceptTcpClient(TCPConnectCallback, null);
}
}
}
解决方案:
FROM mcr.microsoft.com/dotnet/sdk:3.1 WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "run"]
【问题讨论】:
-
试试
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 -
我试了一下,出现以下错误:找不到任何已安装的 .NET Core SDK 您是要运行 .NET Core SDK 命令吗?从以下位置安装 .NET Core SDK:aka.ms/dotnet-download 命令“/bin/sh -c dotnet publish -c Release -o out”返回非零代码:145 ERROR ERROR: build step 0 "gcr.io/cloud- builders/docker" failed: step exited with non-zero status: 145 谢谢你的建议。
-
再看一遍,你应该在
COPY /out .行之前添加那一行,保持其他一切不变,即使用两个不同的图像,一个用于构建的 sdk 和一个用于良好运行的运行时。跨度> -
@MatJ 嗯,它没有用。我遇到了与我在问题中描述的相同的错误,只是它说它没有找到任何框架
标签: c# google-cloud-platform server google-kubernetes-engine