NuGet-RID和TFM示例
我已经在GitHub上查看了NuGet3的代码,我在中看到了与NuGet包中预期的文件夹结构相关的几个文件夹模式。但是,我很难找到这些示例,特别是rid和tfm值 如何知道rid和tfm的所有可能值?我知道它们是指运行时标识符和目标框架名字对象,但我真的不知道如何处理它们NuGet-RID和TFM示例,nuget,runtime-identifier,Nuget,Runtime Identifier,我已经在GitHub上查看了NuGet3的代码,我在中看到了与NuGet包中预期的文件夹结构相关的几个文件夹模式。但是,我很难找到这些示例,特别是rid和tfm值 如何知道rid和tfm的所有可能值?我知道它们是指运行时标识符和目标框架名字对象,但我真的不知道如何处理它们 我所看到的文档似乎从未直接或详尽地处理过这个主题。我花了一些时间查看文档和代码。这个答案大部分来自代码 TargetFrameworkMonitor/tfm是使用中FrameworkIdentifiers中的一个常量构建的。它
我所看到的文档似乎从未直接或详尽地处理过这个主题。我花了一些时间查看文档和代码。这个答案大部分来自代码 TargetFrameworkMonitor/tfm是使用中FrameworkIdentifiers中的一个常量构建的。它是一个框架标识符,加上在末尾连接的版本。一些例子包括:
- net451(.NET 4.5.1)
- dotnet(最新的.NET/portable类库的一种“当前”标记)
- uap10.0(通用Windows应用程序,版本10,本帖最新版本)
- 本机(用于使用NuGet打包的C/C++代码。如果您打算使用此代码,还可以查看CoApp)
- 单触式
- 单安卓
- 沙马林
- win8-x86
- win10-x64
- win10手臂
- 等
这些信息帮助我构建了一个使用runtimes文件夹的NuGet包,因为我很难知道可能的值是什么。我希望它能帮助其他人。目标框架目前在NuGet源代码中是硬编码的。虽然一些目标框架在上有文档记录,但也有许多未在上有文档记录。正如Jeff R已经提到的,找到目标框架的最佳方法是查看NuGet源代码
{
"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" ]
}
}
}
检查。我认为它部分地回答了您的问题,至少对于tfm部分来说是这样。您知道包中是否可能包含特定于平台的.NET Framework 4.5程序集吗?某种运行时\win7-x86\lib\net45。我尝试在上述路径中打包程序集,但在使用它时VS/msbuild找不到该程序集。我可以让Visual Studio使用运行时/win-x86/lib/net47,但不能使用相同路径的win7或win10变体。