【问题标题】:Developer Package missing in .NET SDK5 docker image.NET SDK5 docker 映像中缺少开发人员包
【发布时间】:2021-06-19 00:14:44
【问题描述】:

我正在尝试通过 docker image mcr.microsoft.com/dotnet/sdk:5.0 (https://hub.docker.com/_/microsoft-dotnet-sdk/) 发布一个 c# 项目。

在其中一个*.csproj 文件中有一个类似<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> 的定义

我收到以下错误

/usr/share/dotnet/sdk/5.0.301/Microsoft.Common.CurrentVersion.targets(1216,5): error MSB3644: 
The reference assemblies for .NETFramework,Version=v4.6.1 were not found. 
To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. 
You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks

我尝试从 https://hub.docker.com/_/microsoft-dotnet-runtime-deps/ 安装一些依赖项,但这对我没有帮助。

我已经搜索了几个小时以找到在 linux 发行版中安装 Developer Packs 的教程,但一无所获。

有什么想法吗?

【问题讨论】:

  • 您必须将项目转换为 .net (core) 5. .net 框架的东西不会自动在 linux 上运行。
  • @DanielA.White 感谢您的反馈。我已将 orject 转换为 .net (core) 5 并且可以正常工作。

标签: c# .net linux docker sdk


【解决方案1】:

我认为您将 Net CoreNet Framework 混淆了。

要使用 Net Core: 在 .csproj 文件中将 <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> 更改为 <TargetFrameworkVersion>net5.0</TargetFrameworkVersion> 并修复依赖项以使用 Net Core

要使用 Net Framework:将 docker 映像更改为 mcr.microsoft.com/dotnet/framework/sdk:4.6

【讨论】:

  • 感谢您的反馈。 mcr.microsoft.com/dotnet/framework/sdk:4.6 似乎仅适用于 Windows 容器(请参阅 hub.docker.com/_/microsoft-dotnet-framework-sdk)。
  • Net Framework 仅适用于 Windows,Net Core 是多平台,这就是为什么我给你两个选项来解决你的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 2017-01-27
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
相关资源
最近更新 更多