MonoDevelop报告构建成功,但没有exe文件。

在MonoDevelop中,我创建了一个新的解决方案(C#控制台应用程序)。 它给我一个简单的Hello World程序。 我点击运行按钮。 我看到"构建成功"。 终端弹出并显示:
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.

当我从菜单中选择“构建”时,同样的情况发生了。“构建成功”,但目录是空的。
3个回答

我也刚遇到这个问题。清理、构建、重新构建所有报告都成功了,但实际上没有发生任何事情。

要解决这个问题,你必须安装包 mono-devel,它也在推荐标签中。

推荐:libglade2.0-cil-dev,libgtk2.0-cil-dev,mono-devel

也许你使用了选项 --no-install-recommends 安装了 monodevelop,或者在你的 apt.conf(.d) 文件中有 APT::Install-Recommends "false";,就像我一样。

关于推荐包和 no-install-recommends,请参考 如何不安装推荐和建议的软件包?


这个技巧对我很有帮助。我使用的是MX Linux 17.1 "Horizon",首先使用MX软件包安装程序安装了Monodevelop。在执行apt-get install mono-devel命令后,我的控制台应用程序可以成功构建和执行。 - Tore Aurstad

我遇到了同样的问题。在我的情况下,所有必需的软件包都已安装,所以我不得不进一步寻找。
我只需要在构建/调试项目之前执行“清除全部”操作。
这可能是由于MonoDevelop项目是在另一台机器上启动的,而且使用的是相当旧版本的MonoDevelop。
希望这对处于同样情况的人有所帮助。

我遇到了这个问题,无法通过项目选项中的输出类别进行诊断,因为输出类别不存在(通常会显示在哪里创建程序集以及命名方式)。问题是当我使用MonoDevelop创建解决方案时,我不小心选择了“共享项目”(位于跨平台下的库类别),这是某种原因下的默认项目类型。
为了解决这个问题,我创建了一个新的解决方案,并从“其他”中选择了一个项目类型,比如来自.NET类别,并添加了我的cs文件(还有resx文件--你必须右键单击它们,并将构建设置为EmbeddedResource,然后将默认命名空间更改为调用资源的cs文件相同,以避免缺少资源异常)。这对我解决了问题。