Как получить версию автономного развертывания (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, хотя он не определяет напрямую связь с версией времени выполнения.

Другие вопросы по тегам