为什么 Process.Start() 仅在目标处于"Program Files (x86)"时打开快捷方式



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位"遗嘱。

由于有两个最可能的原因,你需要做这些:

  1. 检查您的项目属性

在"构建"下有一个"平台目标"。请确保将其设置为"任意CPU",并取消选中"首选32位"框。

这很可能是你的问题。

  1. 如果它仍然失败,那说明你走错了路

尽管你可能会说"我当然没有!它在我的桌面上!我能看到!"你错了。

通过将快捷方式放置在公共位置,可以将其放置在每个人的桌面上。例如,我在桌面上有一个快捷方式,但在桌面下找不到。它出现在我的桌面上,因为它在公用文件夹中。

因此,右键单击快捷方式并使用"位置"旁边列出的路径。这是它的真实位置。

示例:

Process.Start(new ProcessStartInfo()
            {
                FileName = @"C:UsersPublicDesktopOracle VM VirtualBox"
            });

或者简单地说:

Process.Start(@"C:UsersPublicDesktopOracle VM VirtualBox");

相关内容

  • 没有找到相关文章

最新更新