0

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 Studio 会导致这个问题,但我知道 Visual Studio 让它消失了。

4

1 回答 1

2

这是 32 位问题或文件位置问题。

你试过什么了?

你用什么代码?

我创建了一个非常基本的应用程序,它运行得很好,但如果我使用错误的路径会抛出你的错误。也使用“prefer 32-bit”会。

由于有 2 个最可能的原因,您需要执行以下操作:

  1. 检查您的项目属性。

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

这很可能是你的问题。

  1. 如果仍然失败,则说明您的路径错误。

尽管您可能会说“我当然不知道!它在我的桌面上!我可以看到它!” 你错了。

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

所以右键单击快捷方式并使用“位置”旁边列出的路径。这是它的真实位置。

例子:

Process.Start(new ProcessStartInfo()
            {
                FileName = @"C:\Users\Public\Desktop\Oracle VM VirtualBox"
            });

或者简单地说:

Process.Start(@"C:\Users\Public\Desktop\Oracle VM VirtualBox");
于 2015-02-25T01:01:23.850 回答