2017-10-08 104 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