Есть ли способ запустить программу, если ее путь превышает MAX_PATH? - PullRequest
0 голосов
/ 24 октября 2018

Мне нужно порождать процессы из моей программы на C #, но в некоторых случаях полный путь к исполняемому файлу может превышать 256 символов.

Я изучил несколько связанных тем на этом сайте, а также эту статью @ MSDN .Согласно этой информации, это должно быть возможно с использованием префикса \\?\, но я все еще не могу заставить его работать.Похоже, система пытается запустить процесс, но не удается.Вместо этого я получаю сообщение "SmartScreen has stopped working".

Я что-то упустил?Вот мой код:

private void button2_Click(object sender, EventArgs e)
{
    ProcessStartInfo start = new ProcessStartInfo();
    start.Arguments = "";
    start.FileName = @"\\?\c:\11111111111111111111111111111111111111111111\222222222222222222222222222222222222222222222\3333333333333333333333333333333333333333333333\444444444444444444444444444444444444444444444\5555555555555555555555555555555555555555555555\6666666666666666666666666666666666666666666666\test.exe";
    start.WindowStyle = ProcessWindowStyle.Normal;
    start.CreateNoWindow = true;
    int exitCode;
    using (Process proc = Process.Start(start))
    {
        proc.WaitForExit();
        exitCode = proc.ExitCode;
        MessageBox.Show(String.Format("Exit code: {0}", exitCode));
    }
}

Я запускаю это на Windows 10, версия 1703 (сборка ОС 15063.1387).

...