我在VS 2010和2012版.NET 2.0中构建我的VB项目没有问题。
然而,MSBuild拒绝构建它,因为它不喜欢VS 2010中引入的一个VB语言特性(更具体的是“隐式行继续”)。
我为MSBuild(来自.NET 3.5)尝试了以下参数:
/p:TargetFrameworkVersion=2.0
/toolsversion:3.5
这不构建,因为我使用的VB功能已经在4.0工具中引入。
所以我将toolversion更改为4.0(并使用.NET 4.0中的MSBuild):
/p:TargetFrameworkVersion=2.0
/toolsversion:4.0
现在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]
现在唯一的解决方案是在VS 2008中打开我的项目并手动更正代码,使其与所有工具兼容。但我希望可以配置MSBuild以便正确构建,因为VS也可以针对.NET 2.0构建项目。
答案 0 :(得分:1)
类似的问题和答案here。他们的关键是:
msbuild YourSolution.sln /tv:4.0 /p:TargetFrameworkVersion=v2.0