2017-10-08 38 views
0

我编写的Mac在Visual Studio 2017年社区的来源,我已经得到了以下错误:的System.Exception:找不到的MSBuild运行时单

Building: ServiceLayer.API (Debug) 
Error: Build failed. See the build log for details. (ServiceLayer.API) 
---------------------- Done ---------------------- 
Build failed. 
Build: 1 error, 0 warnings 

Ide.log日志文件中,我已经输入以下内容:

ERROR [2017-10-08 20:20:45Z]: Inspector does not support this project type 
ERROR [2017-10-08 20:20:45Z]: Build failed. 
System.Exception: Did not find MSBuild for runtime Mono 4.0.2 (c99aa0c) 
    at MonoDevelop.Projects.MSBuild.MSBuildProjectService.GetNewestInstalledToolsVersion (MonoDevelop.Core.Assemblies.TargetRuntime runtime, System.Boolean requiresMicrosoftBuild, System.String& binDir) [0x0006e] in /Users/builder/data/lanes/5144/cab57de4/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs:1087 
    at MonoDevelop.Projects.MSBuild.MSBuildProjectService+<GetProjectBuilder>d__100.MoveNext() [0x00133] in /Users/builder/data/lanes/5144/cab57de4/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs:1116 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:151 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00037] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 
    at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult() [0x00000] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:357 
    at MonoDevelop.Projects.Project+<GetProjectBuilder>d__157.MoveNext() [0x001bb] in /Users/builder/data/lanes/5144/cab57de4/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs:1418 
... 
ERROR [2017-10-08 20:21:16Z]: An unhandled exception has occured. Terminating Visual Studio? False 

注:在类似381条线路上的每个试图建立总。 '堆栈跟踪结束'行重复52次。

这向我指出这条线在MonoDevelop中(参见:MSBuildProjectService.cs):

throw new Exception ("Did not find MSBuild for runtime " + runtime.Id); 

我检查和msbuild命令存在于命令行:

$ which msbuild 
/Library/Frameworks/Mono.framework/Versions/Current/Commands/msbuild 
$ msbuild --version 
Microsoft (R) Build Engine version 15.4.0.0 (master/f296e67b Thu Sep 21 19:38:16 EDT 2017) for Mono 
$ stat /Library/Frameworks/Mono.framework/Versions/Current 
    File: /Library/Frameworks/Mono.framework/Versions/Current -> /Library/Frameworks/Mono.framework/Versions/5.4.0 

什么我已经尝试到目前为止:

  • 我测试了两个通道(稳定BetaVisual Studio更新没有成功。
  • 我试过清洁所有重建所有
  • 我试过删除~/Library/Caches/VisualStudio中的缓存文件。
  • 重新安装VisualStudio。

我在Visual Studio中偏好...项目.NET运行时检查,我有最新的设定为默认(至5.4。 X):

Mono, *Visual Studio*, *Preference...*, *Projects*, *.NET Runtimes*

但是在调试时,它试图打开msbuild为4.0.2代替,例如:

$ sudo fs_usage -f pathname VisualStudio | grep -i msbuild 
12:34:38 stat64   /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/msbuild>>>>>>>>>>>>>>>>>>>>>> 0.000007 VisualStudio 
12:34:38 lstat64   /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/msbuild>>>>>>>>>>>>>>>>>>>>>> 0.000002 VisualStudio 
12:34:38 access   /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/msbuild>>>>>>>>>>>>>>>>>>>>>> 0.000002 VisualStudio 

不存在。


我应该如何添加丢失的的MSBuild解决方案(项目)(按提到的错误)?

+0

您的项目类型是什么?是桌面框架?对于一个新的空白c#项目,如类库,这个问题呢? –

+0

@ Leo-MSFT这是一个服务API框架,它处理来自Web应用程序的API并与支付系统交谈。它在从Jenkins构建时运行在Windows slave上,所以基本上我试图在本地进行调试,但由于某种原因,VS基本上停止了正常工作。 – kenorb

回答

1

单声道4.0.2没有msbuild,它被包含在4.8.0+中。检查/Library/Frameworks/Mono.framework/Versions/Current(符号链接)指向的位置。它可能指向一些单声道5.x.y。尝试更改VSMac设置为在首选项 - >项目 - > .NET运行时间中使用的.NET运行时,以将其更新到最新版本。

由于某些原因,它仍然在4.0.2中查找它。我会尝试,至少暂时删除该4.0.2目录,然后检查。但除此之外,我认为你的安装被破坏了,我会尝试重新安装整个东西(VSMac,Mono,..)。

此外,请检查您的Ide.log文件中的任何引用到4.0.2,之前的例外。

如果即使全新安装也遇到同样的问题,请在bugzilla.xamarin.com处提交错误,我们可以尝试在此处进行调试。

+0

'/Library/Frameworks/Mono.framework/Versions/Current->/Library/Frameworks/Mono.framework/Versions/5.4.0' – kenorb

+0

In _Preferences_我已经是最新的一个,它是5.4.0.201 – kenorb

+1

对于一些它仍然在看'4.0.2'。我会尝试,至少暂时删除'4.0.2'目录然后检查。但除此之外,我认为你的安装被破坏了,我会尝试重新安装整个东西(VSMac,Mono,..)。如果即使全新安装也遇到同样的问题,请在https://bugzilla.xamarin.com/上提交错误,然后我们可以尝试在此处进行调试。 – radical