Frage

Ich scheine eine seltsame Problem mit der System.Diagnostics.Process.Start Methode zu haben. Ich habe eine C # Desktop-Anwendung unter Verwendung von 3.5 SP1 .NET Framework. Ein Benutzer klickt auf einem Etikett, das einen Ordnerpfad in seinem Tag als Zeichenkette an die Funktion gespeichert gibt. Windows Explorer startet mit den richtigen Ordner. Wenn dieses Werkzeug auf Citrix installiert ist und durch eine veröffentlichte Anwendung ausführen, wird nach wie vor Windows Explorer starten, aber eine .NET-Ausnahmemeldung wird auch angezeigt, „Das System kann die angegebene Datei nicht finden“.

System.ComponentModel.Win32Exception: The system cannot find the file specified
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)

Der Dateipfad existiert, wie es gerade gestartet ist es ok und der Code funktioniert ohne Fehler, wenn sie lokal auf dem Server protokolliert, es ist nur Fehler als veröffentlichte Anwendung, mein Code ist unter

Label label = (Label)sender;
if (label.ForeColor == Color.Blue) {
   if (System.IO.Directory.Exists(label.Tag.ToString()) == false)
   {
      MessageBox.Show("The specified folder does not exist:" + 
            Environment.NewLine + Environment.NewLine + label.Tag.ToString(), "",
            MessageBoxButtons.OK, MessageBoxIcon.Information);
      return;
   }
   System.Diagnostics.Process.Start(label.Tag.ToString()); 
}

Ich fand diese Seite http://forums.citrix.com/thread.jspa ? messageID = 1382638 aber wir sowieso nicht IIS auf dem Server.

Kann jemand helfen?

Danke, Rob

War es hilfreich?

Lösung

Anstatt zu versuchen, einen Prozess mit dem Ordnernamen zu starten, um den Prozess „explorer.exe“ starten und den Namen des Ordners als Kommandozeilen-Argument übergeben. Sie können hier von explorer.exe akzeptiert eine Liste der Befehlszeilenargumente finden:

http://support.microsoft.com/kb/314853

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top