如何获得独立部署(SCD)应用程序的.NET Core运行时版本?

时间:2019-02-19 08:56:02

标签: .net-core

我使用dotnet publish -r linux-x64发布.NET Core应用程序,因此它是独立的,并且.NET Core运行时未安装在运行它的服务器上。我认为它是使用.NET Core 2.1构建的。如何确定确切的确切版本?理想情况下,我想在运行时获取此信息,因此应用程序本身可以报告正在运行的运行时,但是即使有一些SDK工具(例如dotnet get-runtime-version My.Assembly.Dll进行报告,总比没有好。

1 个答案:

答案 0 :(得分:1)

发布应用程序后,它将生成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作为.NET Core CLI规范的一部分在Runtime Configuration Files中有进一步记录,尽管它没有直接定义与运行时版本的关系。