monodevelop не может выполнить проект

Я установил monodevelop и написал программу hello world в консоли C#, но в конфигурации run я установил флажок run in external console и нажал на кнопку run. monodevelop говорит: не удается выполнить "{Project Path}"

Os: Debian, Кали 2

Редактировать: и Console.ReadLine() Не работает в конфигурации запуска по умолчанию.

экран магазина добавил снимок экрана

4 ответа

У меня была такая же проблема, вот мое решение.

ОС: Linux Mint 18.1 Cinnamon 64-битная

Monodevelop: 6.1.2.44 flatpak установка

afaik MonoDevelop требует xterm или gnome-терминала для запуска программы во внешней консоли. Если оба отсутствуют, вы получаете ошибки "Не удается выполнить...".

Журнал MonoDevelop показывает:~/.var/app/com.xamarin.MonoDevelop/cache/MonoDevelop-6.0/Logs/Ide.log

ERROR [2017-01-10 19:47:49Z]: Cannot execute "/home/...exe"
System.InvalidOperationException: Cannot start process because a file name has not been provided.

В моем случае мне пришлось установить xterm и скопировать его и его зависимости во время выполнения flatpak:

sudo apt-get install xterm
cp -v /usr/bin/xterm ~/.local/share/flatpak/runtime/org.freedesktop.Platform/x86_64/1.4/active/files/bin/
cp -v /usr/lib/x86_64-linux-gnu/libXaw* ~/.local/share/flatpak/runtime/org.freedesktop.Platform/x86_64/1.4/active/files/lib/
cp -v /usr/lib/x86_64-linux-gnu/libXmu* ~/.local/share/flatpak/runtime/org.freedesktop.Platform/x86_64/1.4/active/files/lib/
cp -v /usr/lib/x86_64-linux-gnu/libutempter* ~/.local/share/flatpak/runtime/org.freedesktop.Platform/x86_64/1.4/active/files/lib/
cp -v /lib/x86_64-linux-gnu/libpng12* ~/.local/share/flatpak/runtime/org.freedesktop.Platform/x86_64/1.4/active/files/lib/
cp -v /lib/x86_64-linux-gnu/libtinfo* ~/.local/share/flatpak/runtime/org.freedesktop.Platform/x86_64/1.4/active/files/lib/

Возможно, не лучшее решение, но оно работает для меня.

Я нашел несколько способов обойти это:

1. Вместо создания консольного приложения создайте GTK 2.0 проект. Например:

using System;
using Gtk;

namespace Test
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            /*Application.Init();
            MainWindow win = new MainWindow();
            win.Show();
            Application.Run(); */
            Console.WriteLine("Hello World");
        }
    }
}

И в Application Output pad, вы увидите "Hello World".

  1. устанавливать mono-runtime (sudo apt-get install mono-runtime) и перейти к bin/Debug/ каталог. Там вы найдете файл.exe и можете просто выполнить его как ./{{NameOfProject}}.exe

У меня была эта проблема на Ubuntu 20.04 (с использованием последней версии monodevelop из PPA)

Это произошло потому, что 20 апреля

gnome-terminal-server переехал из /usr/lib/gnome-terminal/ к /usr/libexec/

Чтобы решить эту проблему, необходимо обновить Monodevelop.

Мое временное исправление:

cd /usr/lib
sudo mkdir gnome-terminal
sudo ln -s /usr/libexec/gnome-terminal-server

Вот автоматический двухстрочный подход для подхода "copy xterm" (протестирован на Ubuntu 16.04):

ldd `which xterm` | awk '{if ($2 == \"=>\") print $3}' | grep / | xargs -I{} cp -Lnv {} .local/share/flatpak/runtime/org.freedesktop.Sdk/x86_64/1.4/active/files/lib/
cp -nv `which xterm` .local/share/flatpak/runtime/org.freedesktop.Sdk/x86_64/1.4/active/files/bin/

Мне пришлось открыть окно терминала в Linux Mint Sylvia и переключиться на имя проекта, а затем оттуда в папку bin/Debug. Я видел, что был exe, созданный monoDevelop. Я изменил режим exe на исполняемый файл. Затем я запустил exe, набрав его name.exe, и он заработал.

Другие вопросы по тегам