我正在使用WPF编写PowerShell ISE插件,我的项目中有一个exe文件,我将其设置为Copy always。我需要在加载加载项时执行它。我用这个方法来执行它:
string exePath = Path.GetFullPath("test.exe");
Process.Start(exePath);
在调试模式下,它可以工作,但如果我直接执行PowerShell ISE,系统找不到带路径的文件,任何人都可以帮忙吗?
由于
答案 0 :(得分: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);