2017-09-17 79 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似乎也有一些问题 - 它不喜欢在构建调试时传递给编译器的参数。释放似乎工作。 –

相关问题