2014-01-15 2 views
0

Я пишу дополнение PowerShell ISE с WPF, в моем проекте есть exe-файл, я всегда устанавливал его как Copy. Мне нужно выполнить его при загрузке надстройки. Я использую этот метод, чтобы выполнить его:Как получить реальный путь к файлу в среде продукта

string exePath = Path.GetFullPath("test.exe"); 
Process.Start(exePath); 

в режиме отладки, он работает, но если я выполняю PowerShell ISE непосредственно, система не может найти файл с путем, кто может помочь?

Благодаря

ответ

0

Без полного понимания того, как ваш проект структурированных и способы, которые вы пытаетесь запустить его, я бы предположить, что причина может быть то, что «test.exe» не в текущей папке запуск приложения.

В таких случаях я делаю следующим образом:

1) в случае, если я знаю, полный путь к файлу, я определяю его:

string exePath = Path.GetFullPath("C:\test.exe"); 
Process.Start(exePath); 

2) В случае, если я знаю, что файл находится в том же папку как вызывающему DLL сборки, я делаю это так (например, в vb.net):

Public Shared Function GetMyPath() As String 
    ' SomeYourType is any class from your assembly, you can f.e. create a private class with single purpose of being used by this function 
    Dim installPath = Path.GetDirectoryName(Assembly.GetAssembly(GetType(SomeYourType)).CodeBase) 
    Return installPath.Substring(6) 
End Function 

а потом использовать его как это:

string exePath = Path.Combine(GetMyPath(), "test.exe"); 
Process.Start(exePath); 
+0

Спасибо! Оно работает! – James

+0

Рад, что я мог бы помочь) – Rustam

Смежные вопросы