我有一段针对Silverlight和.NET目标进行编译的代码。它取决于Json.NET和SharpZipLib。我的目标是创建一个可移植的库,使Silverlight和.NET项目都可以链接到该库。
由于没有针对“ portable-net40 + sl50”的SharpZipLib版本,因此我遇到了问题。
但是,如果我知道怎么做,我将愿意自己编写包装器代码。
那么:如何从Silverlight链接时依赖于Silverlight的SharpZipLib,而从.NET链接时依赖于.NET的SharpZipLib的可移植库呢?
这是完全可能的,还是只有Microsoft可以做的事情?
如果您的代码使用SharpZipLib API的有限子集,则可以创建一个包含此API子集的“虚拟” PCL库,但不实现任何功能。
然后,您要做的就是更改现有.NET和Silverlight SharpZipLib的强名称(程序集名称和签名)和版本,使其与您的“虚拟” PCL SharpZipLib相同,并重新编译特定于平台的库。
使用这套程序集(PCL,.NET和Silverlight),您现在将能够使用其他PCL库中的PCL库。在利用PCL库的平台特定应用程序中,该PCL库又消耗SharpZipLib库,您应该明确引用平台特定的SharpZipLib库,该库具有与PCL类似物相同的强名称和版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句