NuGet - RID和TFM示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NuGet - RID和TFM示例相关的知识,希望对你有一定的参考价值。
我一直在GitHub上查看NuGet3的代码,我在https://github.com/NuGet/NuGet3/blob/a5bc907d36ddaa8d4fa6c499e50d7ebf8993ed39/src/NuGet.Client/ManagedCodeConventions.cs中看到了与NuGet包中预期的文件夹结构相关的几个文件夹模式。但是,我很难找到这些的例子 - 特别是rid和tfm值。
我如何知道rid和tfm的所有可能值?我知道他们的意思是运行时标识符和目标框架Moniker,但我真的不知道如何处理它。
我见过的文档似乎从未直接或详尽地处理该主题。
目标框架目前在NuGet源代码中进行了硬编码。虽然NuGet website记录了一些目标框架,但有许多目标框架没有记录在那里。因此,当Jeff R已经提到找到目标框架的最佳方法时,目前要查看NuGet源代码。
NuGet还为其中一些框架(例如wp = WindowsPhone)提供了short identifiers。
Microsoft定义的运行时标识符可在Microsoft.NETCore.Platforms NuGet package中找到。在这个NuGet包中是一个带有运行时标识符的runtime.json文件:
{
"runtimes": {
"base": {
},
"any": {
"#import": [ "base" ]
},
"win": {
"#import": [ "any" ]
},
"win-x86": {
"#import": [ "win" ]
},
"win-x64": {
"#import": [ "win" ]
},
"win7": {
"#import": [ "win" ]
},
"win7-x86": {
"#import": [ "win7", "win-x86" ]
},
"win7-x64": {
"#import": [ "win7", "win-x64" ]
},
"win8": {
"#import": [ "win7" ]
},
"win8-x86": {
"#import": [ "win8", "win7-x86" ]
},
"win8-x64": {
"#import": [ "win8", "win7-x64" ]
},
"win8-arm": {
"#import": [ "win8" ]
},
"win81": {
"#import": [ "win8" ]
},
"win81-x86": {
"#import": [ "win81", "win8-x86" ]
},
"win81-x64": {
"#import": [ "win81", "win8-x64" ]
},
"win81-arm": {
"#import": [ "win81", "win8-arm" ]
},
"win10": {
"#import": [ "win81" ]
},
"win10-x86": {
"#import": [ "win10", "win81-x86" ]
},
"win10-x64": {
"#import": [ "win10", "win81-x64" ]
},
"win10-arm": {
"#import": [ "win10", "win81-arm" ]
},
"aot": {
"#import": [ "any" ]
},
"win-aot": {
"#import": [ "win", "aot" ]
},
"win-x86-aot": {
"#import": [ "win-aot", "win-x86" ]
},
"win-x64-aot": {
"#import": [ "win-aot", "win-x64" ]
},
"win7-aot": {
"#import": [ "win-aot", "win7" ]
},
"win7-x86-aot": {
"#import": [ "win7-aot", "win7-x86" ]
},
"win7-x64-aot": {
"#import": [ "win7-aot", "win7-x64" ]
},
"win8-aot": {
"#import": [ "win8", "win7-aot" ]
},
"win8-x86-aot": {
"#import": [ "win8-aot", "win8-x86", "win7-x86-aot" ]
},
"win8-x64-aot": {
"#import": [ "win8-aot", "win8-x64", "win7-x64-aot" ]
},
"win8-arm-aot": {
"#import": [ "win8-aot", "win8-arm" ]
},
"win81-aot": {
"#import": [ "win81", "win8-aot" ]
},
"win81-x86-aot": {
"#import": [ "win81-aot", "win81-x86", "win8-x86-aot" ]
},
"win81-x64-aot": {
"#import": [ "win81-aot", "win81-x64", "win8-x64-aot" ]
},
"win81-arm-aot": {
"#import": [ "win81-aot", "win81-arm", "win8-arm-aot" ]
},
"win10-aot": {
"#import": [ "win10", "win81-aot" ]
},
"win10-x86-aot": {
"#import": [ "win10-aot", "win10-x86", "win81-x86-aot" ]
},
"win10-x64-aot": {
"#import": [ "win10-aot", "win10-x64", "win81-x64-aot" ]
},
"win10-arm-aot": {
"#import": [ "win10-aot", "win10-arm", "win81-arm-aot" ]
}
}
}
我花了一些时间来查看文档并查看代码。大多数答案来自代码。
TargetFrameworkMoniker / tfm是使用FrameworkConstants.cs中FrameworkIdentifiers中的一个常量构造的。它是一个框架标识符,加上最后连接的版本。一些例子包括:
- net451(.NET 4.5.1)
- dotnet(最新.NET /便携式类库的“当前”标记)
- uap10.0(通用Windows应用程序,版本10,最新版本)
- native(用于使用NuGet打包的C / C ++代码。如果您打算使用这个,请查看CoApp)
- MonoTouch的
- Monoandroid
- Xamarin.ios
您可以在上面链接的代码中找到其他人。
对于运行时标识符,它们由某种操作系统标识符和体系结构组成。所以,在JsonRuntimeFormatTests.cs你可以找到一些例子。
这些包括:
- win8的-86
- win10-64
- win10-差
- 等等
这些信息帮助我构建了一个使用runtimes文件夹的NuGet包,因为我很难知道可能的值是什么。我希望它可以帮助别人。
以上是关于NuGet - RID和TFM示例的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core Automapper的Nuget安装和配置以及demo示例代码
物理应用基于matlab全矩阵数据TFM成像含Matlab源码 1940期
在 Xamarin.Forms 中使用 Acr.XamForms Nuget 访问相机和图库的示例代码 [关闭]
如何找出软件挂起的原因? (qemu + zephyr + tfm 的问题)