多年以来,开发人员很容易理解.NET 平台上的依赖问题,几乎每个程序都会标注为.NET 精简版(Compact Edition)或是完整版本。此外,由于很少有人使用.NET Micro,这个问题似乎并不太值得关注,但是如今这方面的问题变得愈发复杂起来。
忽略版本号,目前有如下 13 种“类 CLR”平台,每个平台的基础类库都有不同的支持程度。此外,它们可能还有一些独立的,不与其他平台共享的类库。
- .NET
- .NET Client Profile
- .NET 精简版(显然已和废弃无异)
- .NET Micro
- Mono
- MonoDroid(Private Beta)
- MonoTouch
- Silverlight
- Silverlight for S60(Beta)
- Silverlight for Windows Mobile 7
- XNA for Windows
- XNA for XBox 360
- XNA for Windows Mobile 7
再结合版本号、CPU 平台、COM 和 P/Invode 调用,您很快就会陷入依赖冲突的泥潭。
Chris Hardy 已经提出了一个在 MonoDroid 上使用 NuPack 的问题,以及一个匹配功能请求,几乎同一时刻,Phil Haack 发布了在 GUI 级别上过滤的提案。由于微软内外双方都在密切关注包管理机制,依赖方面的问题可能不会愈演愈烈。不过跨平台的测试问题还是必须由项目本身自行解决了。
评论