2017-09-17 24 views
0

當我嘗試在Monodevelop中啓用MSBuild時構建hello-world VB.NET項目時,出現此錯誤。如何在Linux上的Monodevelop中使用MSBuild引擎進行VB.NET項目

'Error: Target named 'Build' not found in the project. (HelloWorld)' 

該項目將建立MSBuild功能被禁用時。我並不真正知道自己在做什麼,但是我正在設法讓自己開始編寫.NET應用程序。我不完全確定我需要這個功能,所以也許有人可以啓發我瞭解MSBuild的用途。謝謝。

+0

這是一個VB.NET項目嗎?如果沒有,你是否安裝了msbuild軟件包? –

+0

是的,是的,我喜歡。 – Mozzy

回答

0

好,所以這裏有一些MonoDevelop錯誤,因爲支持VB.NET不如C#支持。

First MonoDevelop不會將<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />添加到.vbproj文件。

如果此導入添加到.vbproj關於失蹤「建設」目標的誤差應該是固定的這申請爲bug 554445

。但是,你可能會遇到下一個問題。

Mono的MSBuild然後嘗試使用似乎目前不與Mono一起發貨的vbnc.exe。

如果試圖通過設置VbToolExe使用VBC.EXE而不是在項目中VBC.EXE:

<VbcToolExe>vbnc.exe</VbcToolExe> 

然後運行到另一個例外。

System.TypeInitializationException: The type initializer for 'Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser' threw an exception. ---> System.TypeLoadException: Could not resolve type with token 01000286 (from typeref, class/assembly Roslyn.Utilities.IObjectReadable, Microsoft.CodeAnalysis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)

有記錄本中的另一個bug,但它是一個私人的錯誤,所以你不能看到它。

因此,目前VB.NET項目不能用MSBuild編譯,因此您需要使用xbuild或默認的內置支持來在MonoDevelop中使用vbc.exe。

+0

您是否知道vbnc安裝時當前狀態是什麼,並且在將該行插入到.vbproj文件後用作編譯器?我剛剛得到這個錯誤「錯誤:編譯器崩潰的代碼:1.(HelloWorld)」。 – Mozzy

+0

還有一件事,你如何在monodevelop 5.1中啓用xbuild? – Mozzy

+0

所以有兩個選項都混淆請參考MSBuild。全局首選項中的項目 - 項目 - 構建 - 「使用MSBuild而不是xbuild構建」啓用MSBuild。如果沒有選中,那麼進入項目選項 - 構建 - 常規並選中「使用MSBuild引擎」將使用xbuild。取消選中此選項將返回直接使用VB編譯器,而不使用xbuild或MSBuild。在這裏使用xbuild似乎也有一些問題 - 它不喜歡在構建調試時傳遞給編譯器的參數。釋放似乎工作。 –

相關問題