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