web-dev-qa-db-ja.com

MonoDevelopはビルド成功を報告しますが、exeファイルはありません

MonoDevelopで、新しいソリューション(C#コンソールアプリケーション)を作成します。簡単なHello Worldプログラムを提供します。実行ボタンを押します。 「Build Successful」と表示されます。ターミナルが表示され、次のように表示されます。

Cannot open Assembly '/home/beauxq/MonoProjects/cstest/cstest/bin/Debug/cstest.exe': No such file or directory.

Press any key to continue...

そのbin/Debugディレクトリを見ると空です。

ビルド出力:

Building: cstest (Debug|x86)

Build started 7/28/2016 9:29:40 AM.
__________________________________________________
Project "/home/beauxq/MonoProjects/cstest/cstest/cstest.csproj" (Build target(s)):

    Target PrepareForBuild:
        Configuration: Debug Platform: x86

    Target GenerateSatelliteAssemblies:
    No input files were specified for target GenerateSatelliteAssemblies, skipping.

    Target GenerateTargetFrameworkMonikerAttribute:
    Skipping target "GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
Done building project "/home/beauxq/MonoProjects/cstest/cstest/cstest.csproj".-- FAILED

Build FAILED.
     0 Warning(s)

---------------------- Done ----------------------

Build successful.

メニューから「ビルド」を選択しても同じことが起こります。 「ビルドに成功しました」が、ディレクトリが空です。

7
beauxq

私もこれにつまずいた。すべてのレポートのクリーン、ビルド、リビルドは成功しましたが、実際には何も起こりません。

これを修正するには、パッケージmono-develをインストールする必要があります。これは、recommendsタグにも含まれています

推奨:libglade2.0-cil-dev、libgtk2.0-cil-dev、mono-devel

おそらく、--no-install-recommendsオプションを指定してmonodevelopをインストールしたか、apt.conf(.d)のどこかにAPT::Install-Recommends "false";をインストールしているのかもしれません。

推奨および推奨パッケージをインストールしない方法 推奨パッケージおよびno-install-recommendsについても参照してください。

10
Olaf Dietsche

同じ問題が発生しました。私の場合、必要なパッケージはすべてインストールされていたので、さらに調査する必要がありました。

私がしなければならなかったのは、プロジェクトをビルド/デバッグする前に「すべて削除」を実行することだけでした。

これはおそらく、MonoDevelopのかなり古いバージョンの別のマシンで開始されたMonoDevelopプロジェクトによるものでした。

これが同じ状況の誰かに役立つことを願っています。

2
Frank

この問題が発生し、出力カテゴリが存在しなかったため、プロジェクトオプションの出力カテゴリを介して診断できませんでした(通常は、アセンブリの作成場所と名前を指定します)。問題は、MonoDevelopを使用してソリューションを作成したときに、何らかの理由でデフォルトのプロジェクトタイプであるライブラリカテゴリ(クロスプラットフォーム)で誤って共有プロジェクトを選択したことです。

この問題を解決するために、新しいソリューションを作成し、.NETカテゴリなどの「その他」の下にあるプロジェクトタイプの1つから選択し、csファイル(およびresxファイル-右クリックする必要があります。 Buildの場合、EmbeddedResourceに設定してから、デフォルトのネームスペースを、リソースが欠落している例外を回避するためにリソースを呼び出すcsファイルと同じ名前に変更します。これで問題は解決しました。

1
poikilos