如何在产品环境中获取真实的文件路径

时间:2014-01-15 05:46:27

标签: c# wpf io

我正在使用WPF编写PowerShell ISE插件,我的项目中有一个exe文件,我将其设置为Copy always。我需要在加载加载项时执行它。我用这个方法来执行它:

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

在调试模式下,它可以工作,但如果我直接执行PowerShell ISE,系统找不到带路径的文件,任何人都可以帮忙吗?

由于

1 个答案:

答案 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);