代码之家  ›  专栏  ›  技术社区  ›  JackBarn

为什么Process.Start()仅在目标位于“Program Files(x86)”中时打开快捷方式

  •  0
  • JackBarn  · 技术社区  · 10 年前

    Process.Start() 似乎只在目标位于 Program Files (x86) 文件夹中,而不在 Program Files 文件夹

    如果目标位于 程序文件 文件夹我收到休耕错误

    “系统找不到指定的文件”(运行时错误)

    为什么会发生这种情况?有没有办法解决这个问题,以便我可以打开目标位于 程序文件 文件夹

    如果重要的话-我有Windows 7旗舰版

    编辑

    这是我的代码

    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会导致这个问题,但我知道视觉工作室让它消失了。

    1 回复  |  直到 10 年前
        1
  •  2
  •   Jeremy Styers    10 年前

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

    到目前为止,你尝试了什么?

    你用什么代码?

    我已经创建了一个非常基本的应用程序,它运行得很好,但如果我使用错误的路径,就会抛出错误。同时使用“首选32位”。

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

    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");