Vb.net Visual Basic 9(或C#3)与Visual Studio 2010

Vb.net Visual Basic 9(或C#3)与Visual Studio 2010,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我正在从事一个从VB9(VS2008)开始的项目,现在我已经迁移到VS2010(VB10),但在生产服务器上,IDE仍然是VS2008。在我的开发环境中,代码可以很好地编译,但有时,-比方说,-我忘记了行末尾的一个u,这会导致VB9编译器抛出错误 所以问题是,我如何用VS 2010 IDE而不是VB9编译器构建一个项目?或者强制VB10编译器进入VB9模式?不幸的是,没有办法做到这一点。在VisualStudio中编译时,实际上并没有使用命令行编译器。相反,您使用inproc托管的编译器(对于V

我正在从事一个从VB9(VS2008)开始的项目,现在我已经迁移到VS2010(VB10),但在生产服务器上,IDE仍然是VS2008。在我的开发环境中,代码可以很好地编译,但有时,-比方说,-我忘记了行末尾的一个u,这会导致VB9编译器抛出错误


所以问题是,我如何用VS 2010 IDE而不是VB9编译器构建一个项目?或者强制VB10编译器进入VB9模式?

不幸的是,没有办法做到这一点。在VisualStudio中编译时,实际上并没有使用命令行编译器。相反,您使用inproc托管的编译器(对于VB.Net和C#都是如此)。这个编译器虽然能够为目标平台输出完全有效的IL,但它是与VisualStudio绑定的版本(在本例中为10.0)

没有通用的方法可以使用不同版本的编译器或命令行来获取所需的行为

不过,您可以将编译器的语言版本设置为9。这将对VB9中不支持的解析级构造的子集发出警告。这不能从IDE中完成,但可以通过直接编辑项目文件并插入以下命令来完成

 <PropertyGroup> 
    <LangVersion>9</LangVersion> 
  </PropertyGroup> 

9
原始答案:适用于目标3.5,但不适用于此问题

您要做的是让您的VB项目以3.5框架为目标。这将导致编译器对无效的项发出警告,如
\uu

这可以从“项目属性”页面完成

  • 在项目上单击鼠标右键,然后选择“属性”
  • 转到编译选项卡
  • 将目标设定为3.5

“生产服务器IDE仍然是VS 2008”-你为什么要首先在生产服务器上安装IDE?不知道,我不是项目经理,我只是一名开发人员。这是一个web应用程序。@Jean-Bernard Pellerin这是一个非常糟糕的建议。请告诉我你指的是“构建服务器”,IDE指的是“构建引擎”。如果您实际上是在Visual Studio中在生产服务器上编译代码,那么我不知道……谢谢您的完整回答,我已将目标框架设置为3.5,但不幸的是,它没有解决我的问题。@jaraics,对不起,我键入第一个答案时没有想清楚。更新。酷,这是工作!谢谢请注意,该标记应插入项目元素之后。