2014-01-15 149 views
0

我正在用WPF编写PowerShell ISE附加组件,我的项目中有一个exe文件,我将其设置为“始终复制”。我需要在加载项加载时执行它。我用这个方法来执行它:在调试模式如何获得产品环境中的真实文件路径

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

相关问题