通过Nuget安装Phantomjs后,在包文件夹中有一个深层的可执行文件。该软件包还在项目根目录phantomjs.exe
中放置链接/占位符。该文件不会出现在文件系统中,只能在Visual Studio中显示。它有一个指向物理文件的属性“完整路径”。如何使用Nuget包附带的链接的exe文件
如何从我的代码执行该文件?以下代码导致The system cannot find the file specified
。
var p = new Process();
var startInfo = new ProcessStartInfo
{
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
FileName = @"~/phantomjs.exe"
};
p.StartInfo = startInfo;
p.Start();
该文件没有出现在文件系统中,只出现在VS.它有一个属性“完整路径”,我需要在这种情况下使用。 – 2014-09-02 09:35:03
完整的路径指向你的结构中真实的文件?在这种情况下,你需要做一些VS相关的“事情”,因为ShellExecute和CreateProcess都不知道这个特殊的VS链接。你不能简单地将它传递给Win32 API的包装器,你需要首先以某种方式解析它,或者确保你使用的API为你做了它,而这已经不是这种情况了。 – 2014-09-02 09:38:26
是的,确切地说。那么为什么包裹的创造者甚至会在打不通的情况下放置这样的链接呢? Grrmmpf。随着每一个新版本的发展,这条道路将会发生变化,因此硬编码是很痛苦的。 – 2014-09-02 09:44:12