我正在寻找在多平台上运行的可移植C#项目的最佳做法。在我的情况下,我有不同的包装DLL为每个平台提供接口/类,等等,而你在每个平台上是相同的,我仍然需要在每个平台上引用相应的DLL。这种情况下的最佳做法是什么?使用本机dll时跨平台单声道项目布局的最佳做法
我可以在C#项目文件中使用条件引用(使用描述的技术here)。然后我需要知道我是否在Linux,Windows或OS X上。我该怎么做?
另一种选择是为每个平台创建一个单独的项目。但后来我有代码冗余,因为我必须为每个平台实现每个接口/继承。虽然实现是相同的,但它们来自不同类型的事实上的不同类型(尽管它们在使用时是相同的)。
在这种情况下有什么可能的策略,有哪些优点或缺点?