Kubernetes 未找到兼容版本 (dotnet)
Kubernetes no compatible version found (dotnet)
当我在 Google Cloud>Workloads
中部署我的应用程序时,我在日志资源管理器中出现错误
找不到任何兼容的框架版本
框架 'Microsoft.NETCore.App',未找到版本“3.1.0”。
找到了以下框架:
5.0.4 在 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
安装指定框架and/orSDK即可解决问题。
可以在以下位置找到指定的框架:
我的 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"]
您正在使用 sdk
的最新映像,在本例中为版本 5.0.4
。您需要使用它 3.1.0
作为您的应用程序:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1
尝试以下 Dockerfile 之一:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster
WORKDIR /app
COPY ./bin/Debug/netcoreapp3.1 .
EXPOSE 80
ENV ASPNETCORE_URLS "http://*:80"
ENTRYPOINT ["dotnet", "Test.dll"]
或
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "Test.dll"]```
当我在 Google Cloud>Workloads
中部署我的应用程序时,我在日志资源管理器中出现错误找不到任何兼容的框架版本
框架 'Microsoft.NETCore.App',未找到版本“3.1.0”。
找到了以下框架: 5.0.4 在 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
安装指定框架and/orSDK即可解决问题。
可以在以下位置找到指定的框架:
我的 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"]
您正在使用 sdk
的最新映像,在本例中为版本 5.0.4
。您需要使用它 3.1.0
作为您的应用程序:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1
尝试以下 Dockerfile 之一:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster
WORKDIR /app
COPY ./bin/Debug/netcoreapp3.1 .
EXPOSE 80
ENV ASPNETCORE_URLS "http://*:80"
ENTRYPOINT ["dotnet", "Test.dll"]
或
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "Test.dll"]```