Как получить версию автономного развертывания (SCD) среды выполнения.NET Core?
Я публикую свое приложение.NET Core, используя dotnet publish -r linux-x64
, поэтому он является автономным, и среда выполнения.NET Core не установлена на сервере, на котором он выполняется. Он создается с использованием.NET Core 2.1. Как мне узнать точную версию, чтобы знать наверняка? В идеале я хотел бы получить это во время выполнения, чтобы само приложение могло сообщать, в какое время оно выполняется, но даже если есть какой-то инструмент SDK, который сообщает об этом (например, dotnet get-runtime-version My.Assembly.Dll
) это лучше чем ничего.
0 ответов
Когда приложение будет опубликовано, оно сгенерирует My.Assembly.deps.json
и это содержит информацию о включенной среде выполнения. Ищите версию Microsoft.NETCore.App
это ссылка.
Пример (обрезается только до соответствующих свойств):
{
"targets": {
".NETCoreApp,Version=v2.2/win-x86": {
"My.Assembly/1.0.0": {
"dependencies": {
"Microsoft.NETCore.App": "2.2.4"
},
"runtime": {
"My.Assembly.dll": {}
}
}
}
}
}
deps.json
более подробно описан в файлах конфигурации времени выполнения как часть спецификации CLI.NET Core, хотя он не определяет напрямую связь с версией времени выполнения.