C # WPF Отладка запуска exe из внешнего связанного файла - PullRequest
0 голосов
/ 25 сентября 2019

Попытка отладки приложения, которое открывается путем открытия текстового файла, связанного с открытием отлаживаемого приложения.Есть ли способ запустить отладку и дождаться вызова приложения без действия запуска «Запуск внешней программы»?

В конечном итоге я пытаюсь получить информацию о файле текстового файла, открывающего приложение, чтобы его можно было использовать в приложении как файл "сохраненного проекта".

Iу меня есть текстовый файл с именем "myFile.cats", я связал это расширение, чтобы открыть его с моим исполняемым решением, созданным приложением visual studio в отладочной корзине.

Я пытался использовать StartupEventArgs,но он ничего не возвращает, поскольку он не вызывается из внешнего файла.Так что у меня нет возможности проверить это, чтобы убедиться, что оно работает ...

Любая помощь будет принята с благодарностью.

using Caliburn.Micro;
using ApplicationWPFUI.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using ApplicationLibrary;

namespace ApplicationWPFUI
{
    public class Bootstrapper : BootstrapperBase
    {
        public Bootstrapper()
        {
            Initialize();
        }
        //myFile.cats File opens this exe and the 'OnStartup' runs, where is the myFile.cats information being passed in?
        protected override void OnStartup(object sender, StartupEventArgs e)
        {
            if (e.Args.Count() != 0)
            {
                //Save the startupEventArgs to a variable
                GlobalConfigs.FileList.Files = e.Args.ToList();
            }
            DisplayRootViewFor<MainViewModel>();
        }
    }
}

1 Ответ

1 голос
/ 26 сентября 2019

Я уже делал это правильно, с одним небольшим изменением, которое нужно было сделать.Информация, необходимая для файла, открывающего приложение, находится в GlobalConfigs.FileList.Files = e.Args.ToList();.Но мне нужна только первая переменная в этом списке.

Таким образом, вызов следующего делает свое дело:

GlobalConfigs.FileList.Files = e.Args[0].ToString();

Очевидно, что StartupEventArgs не всегда будеттам есть информация, так как я буду вызывать приложение само по себе, а также открывать его с соответствующими файлами.Так что я просто завернул это в выражение if:

if (e.Args.Count() != 0) { 
    GlobalConfigs.FileList.File = e.Args[0].ToString();
}

И Бобс, твой дядя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...