我正在尝试修改孤立进程.net5.0 Azure函数。但我错了。我所有的项目都以net5.0为目标。我的Dockerfile如下所示:
FROM mcr.microsoft.com/azure-functions/dotnet-isolated:3.0-dotnet-isolated5.0-core-tools AS build
WORKDIR /app
COPY . ./
RUN dotnet publish My.Functions -c Release -o out -r linux-x64
FROM mcr.microsoft.com/azure-functions/dotnet-isolated:3.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot
ENV AzureFunctionsJobHost__Logging__Console__IsEnabled=true
ENV FUNCTIONS_WORKER_RUNTIME=dotnet-isolated
COPY --from=build /app/out /home/site/wwwroot我所犯的错误是:
无法找到任何兼容的框架版本/tmp/sek2ugeb.quv/WorkerExtensions.csproj /root/.nuget/packages/microsoft.net.sdk.functions/3.0.11/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5):错误:未找到框架'Microsoft.NETCore.App',版本'3.1.0‘。/tmp/sek2ugeb.quv/WorkerExtensions.csproj
为什么它会尝试使用.net3.1呢?
我能做些什么来解决这个问题?
发布于 2021-06-21 21:23:40
我得把这份报告放进我的文件里。它安装3.1SDK。
RUN dotnet_sdk_version=3.1.409 && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz && mkdir -p /usr/share/dotnet && tar -ozxf dotnet.tar.gz -C /usr/share/dotnet && rm dotnet.tar.gz下面是我们完整的dotnet隔离Dockerfile:
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS installer-env
RUN dotnet_sdk_version=3.1.409 && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz && mkdir -p /usr/share/dotnet && tar -ozxf dotnet.tar.gz -C /usr/share/dotnet && rm dotnet.tar.gz
COPY . /src/dotnet-function-app/
RUN mkdir -p /home/site/wwwroot
WORKDIR /src/dotnet-function-app/*FunctionName*
RUN dotnet publish --output /home/site/wwwroot
FROM mcr.microsoft.com/azure-functions/dotnet-isolated:3.0-dotnet-isolated5.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]```https://stackoverflow.com/questions/67989814
复制相似问题