| 

.NET C# Java Javascript Exception

2
Hallo zusammen,
ich bastele gerade eine kleinen Lösung um meine Programme beim Kunden bei den einzelnen
Usern upzudaten.
Dazu ruf die eigenliche Anwendung die Updater Anwendung auf - diese Prüft auf Updates, beendet die Anwendung und kopiert die neuen Daten auf den Userrechner.
Da es verschiedene Anwendungen gibt die aktualisiert werden müssen übergebe ich der Updater Anwendung per Process.StartInfo.Arguments = Argument welche Anwendung aktualisiert werden soll. Das Ganze funktioniert auf meinem Entwicklungsrechner (Windows 7 Professional) problemlos.
Kopiere ich das Ganze auf den Kundenserver ( Windows Server 2008 R2 ) werden die Argumente nicht mehr übergeben.

Hier die beiden Codeauszüge des Übergebens und Auslesen der Argumente.



Process P = new Process();
P.StartInfo.FileName = Tools.ConfigEntry<string>.GetConfigEntry("PathUpdater", @"F:\ALLGEMEIN\EDV\asUpdater\asWorksUpdater", "Pfad zur UpdaterExe");
P.StartInfo.Arguments = Argument;
P.Start();


Auf meinem Rechner läuft der untere Code problemlos.
Auf dem Kundenrecher bekomme ich hier die MessageBox "Keine Argumente" (die MessageBox ist hier natürlich nur eine schnelle Debughilfe)

public MainWindow(string Argument)
{
try
{
InitializeComponent();

if (Argument != null)
{
arg = Argument.Split(',');
ProgName = arg[2].Replace(".exe", "");
}
else
{
MessageBox.Show("Keine Argumente.");
}
}
catch (Exception ex)
{

MessageBox.Show(ex.Message);
}
}



Jeden Tipp ist ich hochwillkommen.
Danke im Voraus

asWorks
09.07.2013
asWorks 123 1 5
asWorks 123 1 5
Wie rufst Du denn den MainWindow-Konstruktor auf? Das macht .NET doch nicht automatisch, oder?
Matthias Hlawatsch 09.07.2013
6 Antworten
0
Hallo Matthias,
wie schon im oberen Codeteil beschrieben wird dem Process einfach als Argument ein string übergeben. In diesem Falle also 'P.StartInfo.Arguments = Argument'
Unten noch mal detailierter beschrieben.
Die aufgerufene Updater.exe ist eine WPF Datei.
Offensichtlich gibt WPF die Kommandozeilenargumente an das StartWindow weiter denn ohne Argumente wird der parameterlose Konstruktor aufgerufen, mit Argumenten der Konstruktor mit einem string Parameter.
Wie schon gesagt - lokal funktioniert das ganze wunderbar - aber wenn ich die identische Struktur auf dem Kundenserver einrichte werden offensichtlich die Parameter entweder nicht übergeben oder nicht empfangen.
Vielleicht mache ich aber auch einen Denkfehler. Wie gesagt - jede Hilfe ist willkommen.

Gruß

asWorks
string InstallPath = "c:\Programme\etc .....";
string UpdatePath = "F:\Update\.....";
string AppName = "Updater.exe";
string Argument = string.Format("{0},{1},{2]",InstallPath,UpdatePath,AppName");
Process P = new Process();
P.StartInfo.FileName = "F:\Programme\updater.exe"
P.StartInfo.Arguments = Argument;
P.Start();
09.07.2013
asWorks 123 1 5
0
Ist das ein Tippfehler mit der eckigen Klammer:
string Argument = string.Format("{0},{1},{2   -->  ]  <--",InstallPath,UpdatePath,AppName");
09.07.2013
Xantiva 2,3k 2 9
0
Hallo Xantiva,
ja das ist ein Tippfehler. Der Originalcode steht im ersten Post im oberen Fenster.
Ich habe nur zur Verdeutlichung im Codekicker Editor ein paar Zeilen hinzugefügt.

Noch mal zur Problem. Es handelt sich hier nicht um einen Systaxfehler. Der Cose läuft auf meinem Entwicklungrechner einwandfrei.
Ich vermute hier eher ein Konfigurationsproblem.

Gruß
asWorks
10.07.2013
asWorks 123 1 5
Das wäre ja auch zu einfach gewesen ...
Xantiva 10.07.2013
0
Warum einfach wenn´s auch umständlich geht.
11.07.2013
asWorks 123 1 5
0
Ich hab auf meinem XP das selbe verhalten. Also dass er die Argumente nicht mitnimmt, wenn ich das so schreibe wie du. Laut der MSDN soll das wohl auch garnicht so gemacht werden.
MSDN-Link
So sollte es aber Funktionieren (VB Code):
Dim startInfo As New System.Diagnostics.ProcessStartInfo
startInfo.FileName = "IExplore.exe"
startInfo.Arguments = "http://www.google.de/"

Process.Start(startInfo)
12.07.2013
DerPunk 1,2k 1 7
DerPunk 1,2k 1 7
0
Hallo 'DerPunk'

danke für den Tipp. Bin im Moment gerade mit einer wichtigen Terminsache für den Kunden beschäftigt. Ich werden es aber in den nächsten Tagen ausprobieren und dann berichten.

Gruß

asWorks

PS.
Ich hab´s getestet und es funktioniert so auch nicht.
12.07.2013
asWorks 123 1 5
asWorks 123 1 5

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH