所以,不可能客观地告诉一个程序集是否依赖于WinRT或非WinRT版本的框架程序集(是的,它可以同时使用).这些组件在布局和实现的类型方面差别很大.
为什么在构建WinRT程序集时没有更改公钥令牌或版本号?
事实上,如果有人想要克服新的预测来支持其他语言和框架,他们可以做到这一点.
使东西看起来像.net框架有一个重要的目的:
已知的.net开发人员的开发人员不需要从scracth开始,winrt看起来就像一个正常的.net框架程序.
然后存在很多平台独立的.net框架代码,所以这个代码可以在支持框架核心例程的一个子集的任何环境中重新编译或重新使用,这是一个关键的主题,因为这提供了一个简化的方法来给.net功能到.net开发人员.
最后但并非最不重要的是,当前.net开发人员已经创建了大量代码,并且在创建“.net”投影时,微软承诺提供了一些与已创建的.net例程的兼容性,这是因为某些程序集有一些存根和签名作为.net框架对应.
它们是引用程序集,这意味着像“代理程序集”.代理必须看起来像真实对象,在某种程度上而不是真实对象的完整图像.您必须清楚Winrts .net投影不是关于完整的.net参考程序集,WinRT中没有.net框架只是一小部分功能.这是因为你没有所有的类型,当然你没有所有的方法或属性.
没有其他产品,我的意思是没有其他框架或其他程序集做同样的事情,是一个代理只是为了元数据.不是其他.Net Fx版本,绝对不是.是一个组装,以建立一个运行时间和其他交叉点之间的一个平台边界的桥梁.所以我认为是完全可以接受的设置FQN具有相同的名称,因为在将来的版本可能会存在另一个参考程序集到另一个.net fx版本.我相信使用相同名称和版本是一个快捷方式,知道.net fx程序集正在引用,并且btw保留一个程序集名称“compat layer”