【发布时间】:2018-10-18 04:14:06
【问题描述】:
我正在尝试将在 Docker 中运行的 ASP.NET Core 2.0 应用程序更新为 .NET Core 2.1 RC1。
这是我简化的.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<Version>$(Version)</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0-rc1-final" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.1.0-preview1-final" />
</ItemGroup>
</Project>
这是Dockerfile:
FROM microsoft/dotnet:2.1-sdk-alpine AS builder
WORKDIR /
COPY . .
RUN dotnet restore My.Project/My.Project.csproj
RUN dotnet publish My.Project/My.Project.csproj -o /dockerout/ -c Release
FROM microsoft/dotnet:2.1-aspnetcore-runtime-alpine
WORKDIR /app
EXPOSE 80 5000
COPY --from=builder /dockerout .
ENTRYPOINT ["dotnet", "My.Project.dll"]
我可以在 Docker 中构建映像,但运行失败
找不到任何兼容的框架版本找不到指定的框架'Microsoft.AspNetCore.All',版本'2.1.0-rc1-final'。
- 检查应用程序依赖关系并定位安装在以下位置的框架版本: /usr/share/dotnet/
- 安装 .NET Core 先决条件可能有助于解决此问题: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
- .NET Core 框架和 SDK 可以从以下位置安装: https://aka.ms/dotnet-download
我有什么遗漏吗?还是我应该等待 Core 2.1 的最终发布?
【问题讨论】:
-
你能在你的 docker 容器中运行
dotnet version,看看你那里有什么确切的版本吗? -
@Riscie 在第一阶段打印
2.1.300-rc1-008673。在第二阶段,它会打印一个错误“您的意思是运行 dotnet SDK 命令吗?请从以下位置安装 dotnet SDK:go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409”。
标签: docker asp.net-core .net-core asp.net-core-2.1