Win32Exception: Le nom du répertoire est pas valide

Je suis en train de lancer un processus en tant qu'un autre utilisateur disposant des privilèges d'Administrateur dans les 2 ordinateurs différents sous Vista et leur UAC activé, mais dans l'un d'eux je reçois un Win32Exception qui dit que "Le nom du répertoire est pas valide"

Quelqu'un peut me dire quel est le problème avec mon code?

var myFile = "D:\\SomeFolder\\MyExecutable.exe";
var workingFolder = "D:\\SomeFolder";
var pInfo = new System.Diagnostics.ProcessStartInfo();
pInfo.FileName = myFile;
pInfo.WorkingDirectory = workingFolder;
pInfo.Arguments = myArgs;
pInfo.LoadUserProfile = true;
pInfo.UseShellExecute = false;
pInfo.UserName = {UserAccount};
pInfo.Password = {SecureStringPassword};
pInfo.Domain = ".";

System.Diagnostics.Process.Start(pInfo);

Mise à JOUR

L'application qui s'exécute le code ci-dessus a requireAdministrator niveau de l'exécution.
J'ai même mis le dossier de travail pour "Chemin d'accès.GetDirectoryName(myFile)" et "Nouveau Système.IO.FileInfo(myFile).Répertoire"

Dans quelle ligne de code l'erreur se produit? Est-il lorsque vous créez l'objet FileInfo ou lorsque vous démarrez le processus?
Système.Diagnostics.Processus.Start(pInfo)
Vous pouvez utiliser le Moniteur de Processus (de Sysinternals) afin de déterminer les sous-jacents de fichier Win32/dossier de l'opération est un échec.
Par ailleurs, vous pouvez utiliser un littéral de chaîne pour éviter d'avoir à s'échapper des barres obliques dans les chemins d'accès, par exemple, var myFile = @"D:\SomeFolder\MyExecutable.exe";.
Si votre Mondossier chemin d'accès contient des Program Files (x86) dossier, Visual studio ou un autre outil mystiquement supprime un espace entre " s " et " ("et "Program Files(x86)". Peut-être vous avez raté cette faute de frappe

OriginalL'auteur mrtaikandi | 2009-06-13