2

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

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

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

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

我可以吗?

4

3 回答 3

2

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

预处理器符号部分很简单——一旦您获得了 .NET 2.0 的构建配置,您就可以直接在 Visual Studio 中添加预处理器符号。

于 2009-12-16T07:00:19.533 回答
1

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

  1. 添加框架3
  2. 为 .NET Framework 3.5 编译
  3. 更改为Framework2
  4. 为 .NET Framework 2.0 编译

这仍然不像您可能希望的那样自动化,但在我看来,这比取消注释一堆行要好。

于 2009-12-16T06:06:54.253 回答
0

是的,您可以在项目属性中设置定义的常量。恕我直言,管理此问题的最佳方法是拥有共享代码但具有不同定义常量的单独项目文件。因此,mycode_Framework1.csproj、mycode_Framework2.csproj 等。您可以将它们放在同一个解决方案中,也可以不使用它们,但如果这样做,它会使一次构建它们变得更容易一些。

于 2009-12-16T06:12:09.813 回答