Vb.net 使用以.NET 2.0为目标的MSBuild生成新的Visual Basic项目

Vb.net 使用以.NET 2.0为目标的MSBuild生成新的Visual Basic项目,vb.net,compiler-construction,build,msbuild,Vb.net,Compiler Construction,Build,Msbuild,我在VS2010和2012的againt.NET2.0中构建我的VB项目没有问题 但是,MSBuild拒绝构建它,因为它不喜欢VS2010中引入的一种VB语言功能(更具体地说,它是“隐式行继续”) 我尝试了以下MSBuild参数(来自.NET 3.5): 由于我使用的VB功能已在4.0工具中引入,因此无法生成此功能 因此,我将toolsversion更改为4.0(并使用.NET 4.0中的MSBuild): 现在MSBuild抱怨另一件事: C:\Users\Libor\AppData\Loca

我在VS2010和2012的againt.NET2.0中构建我的VB项目没有问题

但是,MSBuild拒绝构建它,因为它不喜欢VS2010中引入的一种VB语言功能(更具体地说,它是“隐式行继续”)

我尝试了以下MSBuild参数(来自.NET 3.5):

由于我使用的VB功能已在4.0工具中引入,因此无法生成此功能

因此,我将toolsversion更改为4.0(并使用.NET 4.0中的MSBuild):

现在MSBuild抱怨另一件事:

C:\Users\Libor\AppData\Local\Temp\.NETFramework,Version=2.0.AssemblyAttributes.vb(6,24):
error BC30002: Type 'System.Runtime.Versioning.TargetFrameworkAttribute' is not defined.
[project.vbproj]

现在对我来说唯一的解决方案是在VS2008中打开我的项目并手动更正代码,使其与所有工具兼容。但我希望可以对MSBuild进行配置,使其能够正确构建,因为VS也可以根据.NET 2.0构建项目。

类似的问题和答案。关键在于:

msbuild YourSolution.sln /tv:4.0 /p:TargetFrameworkVersion=v2.0

类似的问题和答案。关键在于:

msbuild YourSolution.sln /tv:4.0 /p:TargetFrameworkVersion=v2.0
写“/p:TargetFrameworkVersion=2.0”而不是“/p:TargetFrameworkVersion=v2.0”成功了!有趣的是,没有使用“v”字母在我的其他项目上也能起作用……写“/p:TargetFrameworkVersion=2.0”而不是“/p:TargetFrameworkVersion=v2.0”就行了!有趣的是,没有使用“v”字母在我的其他项目中也能起作用。。。
msbuild YourSolution.sln /tv:4.0 /p:TargetFrameworkVersion=v2.0