【问题标题】:MSBuild under CruiseControl.Net on XPXP 上 CruiseControl.Net 下的 MSBuild
【发布时间】:2013-12-31 17:02:25
【问题描述】:

我们的持续集成机器使用 CruiseControl.Net 并在 XP Pro SP3 上运行。我们目前正在使用 C:\Windows\Microsoft.NET\Framework\4.0.30319 中的 MSBuild.exe 从 VS2012 IDE 在 VB.NET 中构建 x86 解决方案。

直到最近,当最近在一个 VS2012 解决方案中添加代码时,我们没有遇到任何问题,该解决方案声明了一个使用 Iterator 关键字的函数(如在 Public Iterator Function (...) 中),现在 MSBuild 吐出了一长串错误对于声明行。我的理解是 VB.net 新支持 Iterator 关键字。我们是否需要更新 MSBuild 或 VB 编译器之类的东西才能在 XP 机器上构建它?

[编辑] 刚刚注意到开发机器上的 VB 编译器是 v11.0.50938.18400,而集成机器上的版本是 v 10.0.30319.233。我猜这指出了问题所在。下一个问题:如何将带有 v11 编译器的 4.0 框架安装到运行 XP 的巡航控制机器上?

【问题讨论】:

  • 你能包含错误信息吗?您的 Iterator 函数是否使用 Yield 来返回值?您是否在开发机器上安装了 Async CTP,但在巡航控制服务器上没有安装?
  • VB.NET 在 VS2012 中获得了 Iterator 关键字。听起来您仍在使用 .NET 4.0 而不是安装 4.5 进行构建。
  • Nick - Yield 用于函数 - 不要认为 Async CTP 安装在 dev 上;知道它没有安装在巡航控制机器上。这是前两条错误消息: CHPGlobals.vb(951,16): error BC30209: Option Strict On 要求所有变量声明都有一个“As”子句。 [C:\Working\Commit\Applications\Common\CHPObjects\CHPObjects\CHPObjects.vbproj] CHPGlobals.vb(951,25):错误 BC30205:预期语句结束。 [C:\Working\Commit\Applications\Common\CHPObjects\CHPObjects\CHPObjects.vbproj]
  • Hans - 是的,我们是并且一直在使用 .NET 4.0 构建。 VB.NET 的 Iterator 关键字是否仅在 .NET 4.5 中支持?

标签: vb.net msbuild cruisecontrol.net


【解决方案1】:

http://msdn.microsoft.com/en-us/library/hh162058.aspx

MSBuild 12.0 有哪些新功能? MSBuild 现在作为 Visual Studio 的一部分安装,而不是作为 .NET Framework 的一部分。当前的 MSBuild 版本号是 12.0。如果要单独安装 MSBuild,请从 MSBuild 下载中下载安装包。

http://www.microsoft.com/en-us/download/details.aspx?id=40760

我不是这个的忠实粉丝(将它从框架安装中移出)。但事实就是如此。

但是你现在有一个问题。

支持的操作系统: Windows 7 Service Pack 1、Windows 8、Windows 8.1、Windows Server 2008 R2 SP1、Windows Server 2012、Windows Server 2012 R2

【讨论】:

  • 我的理解是MSBuild 12自带VS2013。我们正在使用 VS2012 进行开发。但是我一直找不到 VB 编译器 v11 的 XP-pro 兼容版本。
  • 是的,XP 现在已经过时了。这可能是你问题的根源。 zdnet.com/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多