可移植类库的特定于平台的依赖项

约翰

我有一段针对Silverlight和.NET目标进行编译的代码。它取决于Json.NET和SharpZipLib。我的目标是创建一个可移植的库,使Silverlight和.NET项目都可以链接到该库。

由于没有针对“ portable-net40 + sl50”的SharpZipLib版本,因此我遇到了问题。

但是,如果我知道怎么做,我将愿意自己编写包装器代码。

那么:如何从Silverlight链接时依赖于Silverlight的SharpZipLib,而从.NET链接时依赖于.NET的SharpZipLib的可移植库呢?

这是完全可能的,还是只有Microsoft可以做的事情?

安德斯·古斯塔夫森(Anders Gustafsson)

如果您的代码使用SharpZipLib API的有限子集,则可以创建一个包含此API子集的“虚拟” PCL库,但不实现任何功能。

然后,您要做的就是更改现有.NET和Silverlight SharpZipLib的强名称(程序集名称和签名)和版本,使其与您的“虚拟” PCL SharpZipLib相同,并重新编译特定于平台的库。

使用这套程序集(PCL,.NET和Silverlight),您现在将能够使用其他PCL库中的PCL库。在利用PCL库的平台特定应用程序中,该PCL库又消耗SharpZipLib库,您应该明确引用平台特定的SharpZipLib库,该库具有与PCL类似物相同的强名称和版本。

您应该在这里这里找到有关此技术的更多信息(“诱饵和切换”)PCL存储项目还将在该技术已经应用的一个很好的例子。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章