1

我在 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 构建项目。

4

1 回答 1

1

类似的问答在这里。他们的关键是:

msbuild YourSolution.sln /tv:4.0 /p:TargetFrameworkVersion=v2.0
于 2012-10-16T20:00:29.267 回答