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

时间:2017-06-01 20:07:42

标签: c# .net

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

1 个答案:

答案 0 :(得分:0)

检查#define#if...它设置预编译器测试,这就是你可以实现的目标......可能还有其他更简单的选项,但这个选项大部分都适用于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