我可以使用预编译符号来确定在Visual Studio中切换目标框架时将编译哪个代码片段

时间:2009-12-16 06:02:02

标签: c# .net visual-studio visual-studio-2008 precompiled

我们可以在2008年之后在Visual Studio中切换到不同的.NET Framework目标。

我有一个项目,我想构建它的2个不同的目标框架组件。 如果我的目标框架是2.0,我希望它构建一些代码,当我切换到另一个目标框架时,我希望它构建另一个代码片段以使用一些新函数。

现在我必须在任何地方手动注释和取消注释代码,我想知道我是否可以使用一些预编译符号来动态地对我执行此操作。像:

#if Framework3
<do something>
#else
<do something else>
#endif

可以吗?

3 个答案:

答案 0 :(得分:2)

是的,我们在MiscUtil中执行此操作。我不确定您是否可以直接在Visual Studio中执行此操作,因为目标框架选项位于忽略当前配置的属性页中。但是,您可以直接编辑项目文件,以获得正确配置的正确目标框架。特别是,在定位.NET 2.0时,您需要确保没有.NET 3.5引用。有关更多详细信息,请查看我们的主项目文件(MiscUtil.csproj)。

预处理程序符号部分很简单 - 一旦有了.NET 2.0的构建配置,就可以直接在Visual Studio中添加预处理程序符号。

答案 1 :(得分:1)

在为每个框架版本编译之前,只需在构建选项中定义一个。

  
      
  1. 添加 Framework3
  2.   
  3. 编译.NET Framework 3.5
  4.   
  5. 更改为 Framework2
  6.   
  7. 编译.NET Framework 2.0
  8.   

这仍然不像你想要的那样自动化,但在我看来,它比取消注释一堆行更好。

答案 2 :(得分:0)

是的,您可以在项目属性中设置已定义的常量。管理它的最好方法是使用独立的项目文件,这些文件共享代码但具有不同的定义常量。所以mycode_Framework1.csproj,mycode_Framework2.csproj等等你可以将它们放在同一个解决方案中,但是如果你这样做,它会让它们一下子变得更容易。