我理解在使用C#编写Metro风格应用程序时,我们可以访问部分.NET API和所有WinRT API。 但是其他针对.NET 2.0或3.5等版本的第三方组件怎么办? 我们能否将它们作为引用添加到Metro风格应用程序项目中?
我理解在使用C#编写Metro风格应用程序时,我们可以访问部分.NET API和所有WinRT API。 但是其他针对.NET 2.0或3.5等版本的第三方组件怎么办? 我们能否将它们作为引用添加到Metro风格应用程序项目中?
是的,有时候你可以从Metro应用程序引用第三方.NET程序集。它们应该与您的应用程序部署在同一个文件夹中,并且只使用受支持的API。
我创建了一个包含一个类的.NET库,并从Metro应用程序中使用它。得到以下警告:The project 'EmptyLib' cannot be referenced.
但是应用程序已经构建完成,并且我能够调试它并在调试器中探索我的类的实例。
然后我尝试通过Windows应用商店认证。它失败了(请参阅下面的详细信息)。
在为应用程序认证打开编译器优化后,通过了。
第一次失败的原因是库使用了不受支持的API。详情如下:
错误:此应用程序未通过受支持的API检查。
MSCORLIB中的API System.Runtime.CompilerServices.CompilationRelaxationsAttribute,PUBLICKEYTOKEN = B77A5C561934E089不支持此应用程序类型。EmptyLib.dll调用此API。
MSCORLIB中的API System.Runtime.CompilerServices.CompilationRelaxationsAttribute.#ctor(System.Int32),PUBLICKEYTOKEN = B77A5C561934E089不支持此应用程序类型。EmptyLib.dll调用此API。
如果不修复的影响:应用程序使用了一个或多个不在Windows SDK for Metro style Apps中的API。使用不受支持的API违反了Windows Store政策,可能会对用户体验产生负面影响,并有可能妨碍整个系统的稳定性。
如何修复:查看上述错误消息2以获取需要修复的确切API。请参阅Windows SDK for Metro style Apps,了解支持使用的API列表。