docker - .NET Core - Docker 构建在 global.json 中找不到 SDK 版本
问题描述
我有一个带有 global.json 的 .NET (Core) 5.0 解决方案,因为我想保留一个特定的 SDK 版本:
{
"sdk": {
"version": "5.0.302"
}
}
5.0.302 安装在我的机器上,解决方案在 Visual Studio (for Mac) 中打开并且构建得很好,但是当我尝试从命令行使用 Docker 构建时,我得到:
A compatible installed .NET SDK for global.json version [5.0.302] from [/src/global.json] was not found.
我的 Dockerfile 中使用的图像是:
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
我认为我不了解 global.json 文档。我尝试将全局版本更改为 5.0.0 并添加rollforward: latestFeature
. 现在 Docker 将构建,但当我打开项目时 Visual Studio 不会构建:
.NET Core 5.0.0 SDK is required to build this application, and is not installed.
在这种情况下,我希望 VS 使用已安装的 5.0.302,但事实并非如此。
解决方案
虽然 5.0.302 SDK 未在 Microsoft 注册表中列出,但当我尝试提取它时它是可用的。
尝试将您的 Dockerfile 更改为
FROM mcr.microsoft.com/dotnet/sdk:5.0.302 AS build
我不知道微软多久清理一次他们的注册表,但你可能应该准备好让图像在某个时候消失。
如果可以,我建议您不要依赖特定版本的 SDK。
推荐阅读
- arrays - 减小 MATLAB 变量的文件大小
- printing - Xamarin Forms 需要帮助才能通过蓝牙打印机 XP200 进行打印
- .net - Wonderware 系统平台。如何从远程 PC 获取 DateTime?
- vba - 从 VBA 连接到 power bi 并导出大量数据
- c++ - 从“int”到“Vector*”的无效转换
- c# - 当我尝试达到 Rectangle 时的 Null 值
- javascript - 如何在单击时订购颜色下拉数据将移动到我使用 jquery 放置的部分?
- url - 为什么用“?” 而不是 URL 中的“:”?
- java - 使用 Spring Boot 2.0 的 Swagger 导致 404 错误页面
- c# - 只允许是或否作为答案