我在PCL Contrib的帮助下创建了一个可移植类库。要使PCL Contrib工作,我了解您还必须在项目中包含相应的Portable。 Platform .dll( platform 是Desktop,Silverlight等)。利用您的便携式类库。我创建的PCL将被重新分发,我想通过不要求任何使用PCL的人必须包含多个DLL来使其工作来简化其使用。有没有办法可以将PCL DLL,Portable。 Platform DLL以及其他特定于平台的抽象(请参阅PCL Platform Abstraction)转换为每个平台的单个DLL?
我希望继续使用PCL将大部分代码保存在一个可管理的区域,即使它需要(在某种程度上)拆分为特定于平台的软件包。我觉得这将会重复使用尽可能多的代码。
答案 0 :(得分:1)
我看到了几个不同的选项:
1)您可以使用ILMerge执行此操作以将所有二进制文件合并为单个二进制文件。您需要更改PCLContrib以识别这种新模式。
2)从PCLContrib获取所需的源代码,并将其用作库的实现细节。同样,您可能需要稍作修改。
3)利用NuGet使这更容易。我将很快将PCLContrib放在NuGet上,如果你的可再发行组件是一个简单的NuGet包,它依赖于PCLContrib软件包,NuGet将自动使用户项目引用所有正确的二进制文件。