Avatar billede decruzer Nybegynder
07. februar 2006 - 09:55 Der er 14 kommentarer og
2 løsninger

Kan ikke starte .exe fra App ?

Hej

Jeg skal kører GPT.exe fra min applikation. Dertil bruger jeg Process.Start:

System.Diagnostics.Process.Start(Environment.CurrentDirectory + "\\GPK\\GPT.exe");

Men dette for GPT.exe til at smide følgende exception: System.IO.DirectoryNotFoundException in GPT.exe !

Tilgengæld virker GPT.exe glimrende hvis jeg starter det manuelt via explorer.

Hvad kan dette skyldes.
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 09:57 #1
prøv at udskrive stien for at se om den er korrekt.
Der var noget der kunne tyde på at problemet stammer derfra.
Avatar billede decruzer Nybegynder
07. februar 2006 - 10:01 #2
Stien er korrekt. Hvis jeg ændrer stien for jeg en exception i den process der forsøger at starte GPT.exe

Yderligere, bare for at være sikker, forsøgte jeg at skrive stien til ClipBoardet - og derefter paste stien i Start -> Run ! Her startes .exe filen også uden problemer.
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 10:05 #3
prøv at hardcode stien for at se om det gør en forskel
Avatar billede decruzer Nybegynder
07. februar 2006 - 10:09 #4
Det har jeg også prøvet - det giver samme resultat.
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 10:13 #5
har du tjekke exception tekst for at se en mere præcis beskrivelse ?
Avatar billede decruzer Nybegynder
07. februar 2006 - 10:21 #6
Det er det eneste jeg kan få ud af den... Jeg har ikke projektet til den .exe fil hos mig :-(

Og jeg kan ikke debugge det fra projektet der starter GPK processen - da den exception der bliver smidt, jo bliver smidt fra GPK.exe!
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 10:27 #7
ok jeg troede at det denne linie som gav fejl:
System.Diagnostics.Process.Start(Environment.CurrentDirectory + "\\GPK\\GPT.exe");

Kan du få fat i koden fra GPT exe ?
Avatar billede decruzer Nybegynder
07. februar 2006 - 10:35 #8
Ja! Men højst sandsynligt ikke før om et par dage :(

Jeg vender tilbage når jeg har projektet til GPK hos mig.

Tak for hjælpen iøvrigt!
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 10:43 #9
np :)

Den kan være der en sti i GPT.exe som er absolut eller på anden måde giver problemer.
Avatar billede decruzer Nybegynder
07. februar 2006 - 10:45 #10
Det skal jeg bestemt ikke afvise - jeg syntes bare ikke det giver specielt meget mening at jeg kan starte GPT.exe manuelt så !?
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 10:48 #11
det er selvfølgelig rigtig nok med det kan jo være at den forsøger at starte i et eller andet obskurt dir.
altså noget med
Environment.CurrentDirectory + "\\GPK\\GPT.exe" +c:\etellerandet\asfjn
Avatar billede decruzer Nybegynder
07. februar 2006 - 10:59 #12
Hold da op - jeg fik rettet problemet. Dog er jeg totalt lost om hvorfor den opfører sig som den gør.

Tilsyneladende, så tror GPK.exe at den Environment.CurrentDirectory er det samme som min process' CurrentDirectory. Derfor leder den i den forkerte mappe efter en configurations fil.

Mit fix gik simpelt på, at flytte indholdet fra GPK mappen til samme mappe som min process. Det giver ikke rigtigt nogen mening - specielt ikke når det nu virkede da jeg startede GPK manuelt :(

Har du nogen idéer dr_chaos?

Smid iøvrigt et svar - så splitter vi points.
Avatar billede dr_chaos Nybegynder
07. februar 2006 - 11:03 #13
svar.
I kan evt. ændre gpk til enten at hente en sti reg db eller sende det med som et argument når programmet startes.
Dermed undgår i den fejl.
Avatar billede arne_v Ekspert
07. februar 2006 - 14:53 #14
current directory er pussigt nok current directory

du kan ogsaa bruge Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) som
giver dig stien til den EXE der koerer
Avatar billede decruzer Nybegynder
08. februar 2006 - 11:26 #15
arne_v - ja, men når exe filen bliver kørt fra et sub dir til den process der starter min exe fil, så giver det da ingen mening, at det ikke er sub dir'et der er current directory?
Avatar billede arne_v Ekspert
08. februar 2006 - 14:41 #16
jo

current dir er en egenskab ved processen

processer arver saa vidt jeg ved current dir fra processen der har startet den

der er ikke noget mystisk, i at exe fir og current dir er forskellig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester