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