2017-09-17 2 views
0

MonodevelopでMSBuildを有効にしたhello-world VB.NETプロジェクトを作成しようとすると、このエラーが発生します。VBodeプロジェクトでLinux上でMonodevelopでMSBuildエンジンを使用する方法

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

MSBuild機能が無効になっているとプロジェクトがビルドされます。私は自分が何をやっているのか本当に分かっていませんが、私は.NETアプリケーションを書くことができます。私はこの機能が必要なのかどうか完全にはわかっていないので、誰かが私にMSBuildの使用方法を教えてくれるかもしれません。ありがとう。

+0

これはVB.NETプロジェクトですか?もしあなたがmsbuildパッケージをインストールしていないのであれば? –

+0

はい、そうです、そうです。 – Mozzy

答えて

0

OKこれで、VB.NETのサポートがC#のサポートと相性が良くないため、MonoDevelopのバグがいくつかあります。

最初にMonoDevelopは.vbprojファイルに<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />を追加しません。あなたが不足している「ビルド」ターゲットに関するエラーが修正されるはずの.vbprojにこのインポートを追加した場合

これはbug 554445

として提出されています。しかし、あなたはおそらく次の問題にぶつかるでしょう。

モノのMSBuildは、現在Monoに同梱されていないようなvbnc.exeを使用しようとします。

プロジェクトでvbc.exeされるVbToolExeを設定することで、代わりに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)

は、このためにログインし、別のバグがありますが、あなたがそれを見ることができないので、それはプライベートなバグです。

現在のところ、VB.NETプロジェクトはMSBuildでコンパイルされないため、xbuildまたはMonoDevelopでvbc.exeを使用するためのデフォルトのビルトインサポートを使用する必要があります。

+0

vbncがインストールされ、その行を.vbprojファイルに挿入した後でコンパイラとして使用されているときの現在の状態は何ですか。私はちょうどこのエラー "エラー:コンパイラがコードでクラッシュ:1.(HelloWorld)"を取得します。 – Mozzy

+0

もう1つ、xbuildをmonodevelop 5.1でどのように有効にしますか? – Mozzy

+0

したがって、MSBuildには2つのオプションがあります。グローバル環境設定 - プロジェクト - ビルド - 'xbuildの代わりにMSBuildを使用してビルド'の1つがMSBuildを有効にします。それがチェックされていない場合は、プロジェクトオプション - ビルド - 一般に入り、 'MSBuildエンジンを使用する'をチェックするとxbuildが使用されます。このチェックを外すと、xbuildやMSBuildなしで直接VBコンパイラを使用するようになります。ここでもxbuildを使用するといくつかの問題があるようです - デバッグをビルドするときにコンパイラに渡されるパラメータが好きではありません。リリースはうまくいくようです。 –

関連する問題