我需要在我的一些Nuget包中使用System.Reflection.TypeExtensions。我希望这个包在Xamarin Forms项目中使用。 根据{{3}},这应该适用于Xamarin。
然而,当我编译我的Android项目以进行测试时,我收到了这个错误:
加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集&System; System.Reflection.TypeExtensions,Version = 4.0.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。也许它在Mono for Android配置文件中不存在?
我无法弄清楚如何修复此错误,特别是因为其他一些我无法删除的包需要...
任何想法如何解决?
这是我的package.json /我的包的框架:
"frameworks": {
"net45": {
"frameworkAssemblies": {
"System.Runtime": "",
"System.ObjectModel": "",
"System.Linq.Expressions": ""
},
"dependencies": {
"System.Collections": "4.0.11-beta-23516"
}
},
"dotnet5.2": {
"dependencies": {
"System.Collections": "4.0.10",
"System.Collections.Concurrent": "4.0.11-beta-*",
"System.ComponentModel": "4.0.1-beta-*",
"System.Globalization": "4.0.11-beta-*",
"System.Linq": "4.0.1-beta-*",
"System.Linq.Expressions": "4.0.11-beta-*",
"System.Reflection": "4.1.0-beta-*",
"System.Reflection.Primitives": "4.0.1-beta-*",
"System.Reflection.TypeExtensions": "4.0.1-beta-*",
"System.Runtime": "4.0.21-beta-*",
"System.Threading": "4.0.11-beta-*"
}
},
"dnxcore50": {
"dependencies": {
"System.Collections": "4.0.11-beta-23516",
"System.Collections.Concurrent": "4.0.11-beta-*",
"System.ComponentModel": "4.0.1-beta-*",
"System.Globalization": "4.0.11-beta-*",
"System.Linq": "4.0.1-beta-*",
"System.Linq.Expressions": "4.0.11-beta-*",
"System.Reflection": "4.1.0-beta-*",
"System.Reflection.Primitives": "4.0.1-beta-*",
"System.Reflection.TypeExtensions": "4.1.0-beta-23516",
"System.Runtime": "4.0.21-beta-*",
"System.Threading": "4.0.11-beta-*"
}
}
PS:重启Visual Studio并不能解决任何问题
答案 0 :(得分:1)
弄清楚会发生什么:我从dotnet5.2输出中选择了DLL。 如果我从net45文件夹中选择DLL,我没有编译问题。
Altough,我必须搜索为什么,在创建nuget包时,它会选择错误的框架并创建错误。
答案 1 :(得分:0)
您引用了两个不同的版本
"System.Reflection.TypeExtensions": "4.0.1-beta-*"
"System.Reflection.TypeExtensions": "4.1.0-beta-23516"