尝试在Intel Galileo Gen 1板上运行.NET OWIN自托管应用程序时,出现以下异常:
Unhandled Exception: System.Reflection.TargetInvocationException: Exception has
been thrown by the target of an invocation. ---> System.MissingMethodException:
Method not found: 'Boolean System.Type.op_Equality(System.Type, System.Type)'.
at Microsoft.Owin.Hosting.Services.ActivatorUtilities.CreateFactory(Type type
)
at Microsoft.Owin.Hosting.Services.ServiceProvider.Add(Type serviceType, Type
implementationType)
at Microsoft.Owin.Hosting.Services.ServicesFactory.<>c__DisplayClass1.<Create
>b__0(Type service, Type implementation)
at Microsoft.Owin.Hosting.Services.ServicesFactory.<>c__DisplayClass4.<DoCall
back>b__3(Type service, Type implementation)
at Microsoft.Owin.Hosting.Services.ServicesFactory.DoCallback(Action`2 callba
ck)
at Microsoft.Owin.Hosting.Services.ServicesFactory.DoCallback(IDictionary`2 s
ettings, Action`2 callback)
at Microsoft.Owin.Hosting.Services.ServicesFactory.Create(IDictionary`2 setti
ngs, Action`1 configuration)
at Microsoft.Owin.Hosting.Services.ServicesFactory.Create(IDictionary`2 setti
ngs)
at Microsoft.Owin.Hosting.WebApp.BuildServices(StartOptions options)
at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options)
at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options)
at Microsoft.Owin.Hosting.WebApp.Start[TStartup](String url)
at Osborn.Galileo.OwinHost.Program.Main(String[] args)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments,
Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Objec
t[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke
Attr, Binder binder, Object[] parameters, CultureInfo culture)
at AppDomainManager.HostMain(Int32 argc, Char** argv, Char* assemblyToRun, In
t32 flags)
我的问题分为两部分:
- 英特尔伽利略版本的Windows支持.NET吗
- 如果是,是什么版本,是完整的框架还是仅是客户端配置文件
值得一提的是,.Net CORE运行时的大小约为11MB,所有项目都可以作为独立的应用程序与其他运行不同依赖关系的.Net项目并排运行。
完整的.net堆栈(约200MB)不是用于物联网的,它从来都不是。在网上查找ASP.NetvNext,了解不久的将来情况。
我怀疑Galileo是否会运行.NET框架。它缺乏.NET所依赖的现代指令集。其他人提到的常见问题只是提到了"通用应用程序模型",它的意思可能只是"WinRT",这是一个C++东西(但如果你有.NET,很容易从.NET中消费)。但我并不是说我们以后不会在某些设备上看到.NET。。。
话虽如此,您可以使用Jer的Mono端口在galileo上运行.NET应用程序:http://jeremiahmorrill.wordpress.com/2014/09/05/mono-on-windows-for-intel-galileo-source-code/
它不是很快,但在大多数情况下都有效。