如何构建类库,以便它为两个不同的框架输出两个不同的 DLL,而忽略每个构建中的一些方法/类?



说我有一个包含.net2.0兼容代码和.net5兼容代码的类库。我希望能够为两个框架构建项目,在构建.NET2.0构建时,.NET5代码被忽略。这样,我只能在两个框架迎合两个框架的同时维护一个版本。

#if...一起检查#Define,它设置了预编译器测试,这就是您可以实现的方法...可能还有其他更简单的选项,但此选项主要像C 中一样工作>

这是链接的一个示例:

#define DEBUG  
//#define TRACE  
#undef TRACE  
using System;  
public class TestDefine  
{  
  static void Main()  
   {  
     #if (DEBUG)  
       Console.WriteLine("Debugging is enabled.");  
     #endif  
     #if (TRACE)  
       Console.WriteLine("Tracing is enabled.");  
     #endif  
   }  
 }  
// Output:  
// Debugging is enabled.  

因此,这个想法是创建#define NET5#define NET2并在代码中测试定义的一个,具体取决于您的编译。这样,编译器将忽略一个或另一个...

 #define NET5
 #define NET2
 #if (NET5)  
       NET5 code...
 #endif
 #if (NET2)  
       NET2 code...
 #endif

最新更新