Я пытаюсь зарегистрировать свой исполняемый файл для какого-либо действия оболочки и мне нужно найти путь к текущему исполняемому файлу. Я нашел несколько вопросов (и ответов) здесь, на SO, и нашел следующие варианты:
Environment.GetCommandLineArgs()[0]
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
typeof(Program).Assembly.Location
Однако при отладке в Visual Studio 2010 первые два возвращают имя exe vshost, например, ...bin\Debug\ExportVSProject.vshost.exe
. Я думаю, что понимаю почему. Методом проб и ошибок я обнаружил, что последний предоставляет правильное имя внутри VS и снаружи.
Мой вопрос: есть ли недостатки в использовании Assembly.Location
? Причина, по которой я спрашиваю, состоит в том, что я не видел никакого сравнения, чтобы выбрать одно из другого в других ответах.