Приложение C # Winforms открывается из командной строки и в отладчике, но не из проводника - PullRequest
0 голосов
/ 28 ноября 2018

Я запрограммировал это приложение C # Winforms открывать при нажатии файла в проводнике (из команды «Открыть с помощью ...»).Однако вместо открытия приложение просто вылетает без сообщения об ошибке.Из диспетчера задач видно, что приложение работает незадолго до исчезновения.

Из тестового приложения я смог обнаружить, что Проводник файлов отправляет путь к файлу в качестве первого аргумента.Запуск приложения из отладчика или из командной строки работает (даже с путем к файлу в качестве аргумента).

Вот код:

public static void Main(string[] args) {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        MainForm form = new MainForm();

        if (args.Length > 0) {
            if (System.IO.File.Exists(args[0])) {
                form.OpenFile_(args[0]);
            }
        }

        try {
            Application.Run(form);
        } catch (Exception e) {
            form = new MainForm();
            form.SetStatus("Something went wrong opening the file.");
            Application.Run(form);
        }
    }

Даже с блоком try / catch,приложение не запускается из проводника. Работает без проблем из командной строки или в отладчике.

1 Ответ

0 голосов
/ 12 декабря 2018

Это действительно просто:

Вместо:

string SettingsFilePath = "settings.txt";

Использование:

string SettingsFilePath = Application.StartupPath + "\\settings.txt";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...