Как получить имя .exe консольного приложения C#?C#

Место общения программистов C#
Ответить
Anonymous
 Как получить имя .exe консольного приложения C#?

Сообщение Anonymous »

Я отлаживаю "xiixtasks.exe", консольное приложение C# в VS2008.
Я пытаюсь получить информацию о версии из xiixtasks.exe.
Когда я пытаюсь выполнить "Process.GetCurrentProcess()", он дает мне имя файла и информацию о версии vshost.exe, а НЕ xiixtasks.exe:

Код: Выделить всё

  // WRONG: this gives me xiixtasks.vhost.exe, version 9.0.30729.1
//        I *want* "xiixtasks.exe", version 1.0.0.1024
System.Diagnostics.FileVersionInfo fi =
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileVersionInfo;
Что мне следует делать вместо этого?

Решение:
  • Первоначальной проблемой действительно была оболочка IDE «vshost».
    Одним из обходных путей было бы изменение настроек сборки.
  • Assembly.GetExecutingAssembly().CodeBase — отличное решение — спасибо! Он работает внутри и вне отладчика.
  • К сожалению, когда я попытался вызвать его с помощью функции, которая ожидала нормальный путь к файлу (вместо URI, такого как GetExecutingAssembly()), он умер с исключением «Форматы Uri не поддерживаются».
  • Окончательное решение: вызовите GetExecutingAssembly(), затем Uri.LocalPath():

    Код: Выделить всё

     ...
    else if (cmdArgs.cmd.Equals(CmdOptions.CMD_SHOW_VERSION))
    {
    string codeBaseUri =
    Urifile.System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
    string codeBase =
    new Uri (codeBaseUri).LocalPath;
    string sVersion = Util.GetWindowsVersion(codeBase);
    System.Console.WriteLine ("version({0}): {1}: ",
    Util.Basename(codeBase), sVersion);
    }
    


Подробнее здесь: https://stackoverflow.com/questions/788 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»