如何从MSBuild中针对多个版本的.NET Framework进行定位?

28 浏览
0 Comments

如何从MSBuild中针对多个版本的.NET Framework进行定位?

如果目标框架是较新的版本,我的项目的一些地方的代码可能需要大幅度改进。我想要更好地利用C#中的条件编译来根据需要进行切换。类似于:

#if NET40
using FooXX = Foo40;
#elif NET35
using FooXX = Foo35;
#else NET20
using FooXX = Foo20;
#endif

这些符号中有哪些是免费的?我需要将这些符号作为项目配置的一部分注入吗?这似乎很容易做到,因为我可以从MSBuild了解到目标框架。

/p:DefineConstants="NET40"

人们是如何处理这种情况的?您是否创建了不同的配置?您是否通过命令行传递常量?

0
0 Comments

问题的原因是需要在MSBuild中针对多个版本的.NET Framework进行目标设置。解决方法是在项目文件中添加代码来修改定义的常量,以便根据目标框架版本自动生成条件编译符号。通过在Visual Studio的项目属性中查看生成选项卡,可以看到生成的条件编译符号的结果。然后可以使用#if预处理指令来根据不同的条件编译符号进行编译。这种方法适用于针对多个版本的.NET Framework进行目标设置的需求。

0