我在 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 工具中引入。
所以我将 toolsversion 更改为 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 构建项目。