Программа на C # не запускается за пределами Visual Studio как .EXE - PullRequest
0 голосов
/ 31 августа 2018

Я создал небольшую программу на C # winforms, которая прекрасно работает, когда я запускаю ее в Visual Studio 2017. Но когда я собираю решение и дважды щелкаю по .exe, ничего не происходит, экран не появляется, даже диспетчер задач не видит Это. Нет ошибок Это как будто ничего не делает! Мое единственное предположение, что я построил это неправильно, потому что я использовал Nuget для установки newtonsofts JSON.NET в решении. Нужно ли мне делать что-то другое или нужно просто построить работу решения?

[решено]

сегодня я узнал разницу между папкой bin и obj, спасибо всем за помощь

Ответы [ 4 ]

0 голосов
/ 31 августа 2018

Основано на вашем комментарии:

находится в папке obj / debug проекта

Похоже, вы используете неправильный .exe. Папка obj используется для временного / разного. файлы из процесса сборки (см. Для чего создается папка obj? ).

Вместо этого вы хотите запустить exe в bin\Debug, если «Debug» - это конфигурация, для которой вы создаете. Вы можете увидеть, какая конфигурация в верхней части VS.
enter image description here

Как и другие, уже упоминавшиеся, убедитесь, что Newtonsoft.Json.dll также копируется в этот выходной каталог. Программы и их зависимости должны быть вместе, вообще говоря. В противном случае ваш exe не будет знать, где найти код JSON, который ему нужен для работы

99% времени, вы должны притворяться, что каталог obj даже не существует.

Если все еще не указывает вам правильное направление, запустите приложение из командного окна. Любое исключение должно быть напечатано на нем, и окно останется открытым для просмотра (и это дает преимущество в том, что для просмотра этой ошибки не требуется никакого дополнительного журнала или кода обработки исключений).
Например, я написал плохое приложение, которое получает NullReferenceException в методе с именем Test, который вызывается из Main. Как вы можете видеть, трассировку стека легко увидеть, даже если мое приложение упало (спасибо ColinM за первоначальное поднятие этой проблемы).
enter image description here

0 голосов
/ 31 августа 2018

exe и соответствующие файлы должны находиться в папке bin. Не копируйте только exe из папки bin и попробуйте запустить его. Хорошая идея написать код исключения, чтобы получить подробности.

0 голосов
/ 31 августа 2018

Я считаю, что есть проблема с модулем запуска. Следуйте инструкциям ниже

  1. Откройте ваше решение в visual studio
  2. Двойной клик по свойствам

    enter image description here

  3. Выберите тип вывода для приложения Windows

  4. Обязательно установите объект запуска следующим образом

    enter image description here

Надеюсь, это поможет

0 голосов
/ 31 августа 2018

Я думаю, что есть только одна причина

В Visual Studio заранее задан аргумент командной строки . Ваше приложение использует этот аргумент для выполнения, без него оно закрывается слишком быстро, и вы даже не видите, что ваше приложение открыто.

Right click on your project in VS -> Properties -> Debug и посмотрите, есть ли значение в аргументах командной строки

...