.net 再分配库中的可移植类库Contrib

.net 再分配库中的可移植类库Contrib,.net,silverlight,dll,portable-class-library,.net,Silverlight,Dll,Portable Class Library,我在的帮助下创建了一个可移植类库。要使PCL Contrib正常工作,我知道您还必须在项目中包含适当的Portable.Platform.dll(平台为Desktop、Silverlight等),该项目将使用您的Portable类库。我创建的PCL将被重新分发,我希望通过不要求任何使用PCL的人必须包含多个DLL才能使其工作来简化它的使用。是否有一种方法可以将PCL DLL、Portable.Platform DLL和其他特定于平台的抽象(请参阅)滚动到每个平台的单个DLL中 我希望继续使用PC

我在的帮助下创建了一个可移植类库。要使PCL Contrib正常工作,我知道您还必须在项目中包含适当的Portable.Platform.dll(平台为Desktop、Silverlight等),该项目将使用您的Portable类库。我创建的PCL将被重新分发,我希望通过不要求任何使用PCL的人必须包含多个DLL才能使其工作来简化它的使用。是否有一种方法可以将PCL DLL、Portable.Platform DLL和其他特定于平台的抽象(请参阅)滚动到每个平台的单个DLL中


我希望继续使用PCL,将我的大部分代码保存在一个可管理的区域中,即使它需要(在某种程度上)拆分为特定于平台的包。我觉得这将重复使用尽可能多的代码。

我看到了一些不同的选项:

1) 可以使用ILMerge将所有二进制文件合并为一个二进制文件。您需要更改PCLContrib以识别这种新模式

2) 从PCLContrib获取所需的源代码,并将其用作库的实现细节。同样,您可能需要稍作修改


3) 使用NuGet使这更容易。我很快就会把PCLContrib放在NuGet上,如果你的可再发行文件是一个简单的NuGet包,它依赖于PCLContrib包,NuGet会自动让消费者项目引用所有正确的二进制文件。

我认为NuGet的想法是最好的。我还没有对它进行彻底的调查,但据我所知,它非常方便。谢谢你的建议!