Process.Start()
似乎只适用于目标位于Program Files (x86)
文件夹而非Program Files
文件夹中的快捷方式。
如果目标在Program Files
文件夹中,我会得到空闲错误
"系统找不到指定的文件"(运行时错误)
为什么会发生这种情况,有什么方法可以解决这个问题,这样我就可以打开目标位于Program Files
文件夹中的快捷方式。
如果重要的话-我有Windows 7 Ultimate
编辑
这是我的代码
public class MainClass
{
static void Main()
{
Process.Start(Path.Combine(Directory.GetCurrentDirectory(), "Blender") );
Console.ReadLine();
}
}
编辑2-我的解决方案
我开始怀疑问题出在我的IDE(Xamarin Studio)上。所以我安装了Visual studio,关闭了偏好32位,并将其设置为AnyCPU,它就工作了。我不知道Xamarin工作室为什么会造成这个问题,但我知道视觉工作室让它消失了。
这是一个32位问题或文件位置问题。
到目前为止你试过什么?
你用什么代码?
我已经创建了一个非常基本的应用程序,它运行得很好,不过如果我使用错误的路径会导致错误。同时使用"首选32位"遗嘱。
由于有两个最可能的原因,你需要做这些:
- 检查您的项目属性
在"构建"下有一个"平台目标"。请确保将其设置为"任意CPU",并取消选中"首选32位"框。
这很可能是你的问题。
- 如果它仍然失败,那说明你走错了路
尽管你可能会说"我当然没有!它在我的桌面上!我能看到!"你错了。
通过将快捷方式放置在公共位置,可以将其放置在每个人的桌面上。例如,我在桌面上有一个快捷方式,但在桌面下找不到。它出现在我的桌面上,因为它在公用文件夹中。
因此,右键单击快捷方式并使用"位置"旁边列出的路径。这是它的真实位置。
示例:
Process.Start(new ProcessStartInfo()
{
FileName = @"C:UsersPublicDesktopOracle VM VirtualBox"
});
或者简单地说:
Process.Start(@"C:UsersPublicDesktopOracle VM VirtualBox");