Toon posts:

[VS.NET] FileNotFound Exception bij debuggen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik in mijn applicatie een XML document, niets bijzonders verder.
Als ik na compilen de exe vanuit de debug folder opstart is er niets aan de hand, maar als ik debug run vanuit VS dan krijg ik dus een FileNotFound Exception.
code:
1
2
3
An unhandled exception of type 'System.IO.FileNotFoundException' occurred in System.Xml.dll

Additional information: Could not find file 'D:\Program Files\Microsoft Visual Studio .NET Whidbey\Common7\IDE\Config.xml'.

Dit is de code waarmee ik de file aanroep.
C#:
1
2
XmlDocument XD = new XmlDocument();
XD.Load("Config.xml");

Als ik het volgende doe kan hij e:\Config.xml niet vinden, logisch:
C#:
1
2
XmlDocument XD = new XmlDocument();
XD.Load("\\Config.xml");

En met het volgende:
C#:
1
2
XmlDocument XD = new XmlDocument();
XD.Load(Application.StartupPath + "\\Config.xml");

krijg ik:
code:
1
Additional information: Could not find file 'D:\Program Files\Microsoft Visual Studio .NET Whidbey\Common7\IDE\Config.xml'.

Waarschijnlijk is in het laatste geval de Application.StartupPath de path van de debugger ??

De vraag is dus, wat moet ik gebruiken/ dan wel instellen in mijn project om niet mijn code aan te passen als ik ga debuggen, dan wel release .....
Het zou een beetje omslachtig zijn als ik voor debuggen mijn path zou moeten aanpassen voor elke referentie die ik maak, toch :?

Verwijderd

gebruik maken van debug statements in c#, dus die worden uitgevoerd als je aan het debuggen bent. Bij compile voor een test of release dan niet.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
En als je je config.xml gewoon in de directory zet waar je DEBUG versie gebouwd wordt? Dus in "projectmap\bin\debug\" ? Dan zou hij het volgens mij gewoon moeten doen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
rwb schreef op 21 september 2004 @ 11:55:
En als je je config.xml gewoon in de directory zet waar je DEBUG versie gebouwd wordt? Dus in "projectmap\bin\debug\" ? Dan zou hij het volgens mij gewoon moeten doen.
Dat dacht ik dus ook, maar dat is niet het geval ...
Maar als ik vanuit explorer de exe uit de debug folder opstart dan vindt hij hem idd wel ja .....

Verwijderd

Je start hem op vanuit de IDE en niet vanuit de debug map....

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Je kan in de debugger toch even kijken wat de current dir is, even alles controleren en dat zul je toch zeker tot de conclusie dat je path niet klopt.

Gebruik anders is:
C#:
1
Application.StartPath + @"\blaat\config.xml";

Verwijderd

Nogmaals... je debugged vanuit de IDE dus die verzorgt ook de map waarin je applicatie staat... en dat is dus niet de /debug mag van je bin van je project....

Verwijderd

Topicstarter
Kan ik die debug start folder dan niet aanpassen.
Ik heb bij mijn Project's Configuration Properties voor Debuggen wel de working Directory gevonden en aangepast maar dit schijnt niet te werken 8)7

  • MikevanEngelen
  • Registratie: Mei 2001
  • Laatst online: 22-05 14:39
Werkt Enviroment.Currentdirectory niet ?

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

MikevanEngelen schreef op 22 september 2004 @ 10:32:
Werkt Enviroment.Currentdirectory niet ?
Is niet echt safe, deze kun je namelijk wijzigen. Application.StartPath en daarmee verder is veel safer.
Verwijderd schreef op 21 september 2004 @ 12:26:
Kan ik die debug start folder dan niet aanpassen.
Ik heb bij mijn Project's Configuration Properties voor Debuggen wel de working Directory gevonden en aangepast maar dit schijnt niet te werken 8)7
Copy je file is naar je C-schijf, dus "c:\config.xml" en open hem dan is met het volledige path.

Het ligt echt aan het path, kan niet anders. Je kan ook even de message opvangen, hier staat dacht ik het volledige path in die de exception gooit.

[ Voor 22% gewijzigd door pjvandesande op 22-09-2004 10:48 . Reden: quote toegevoegd ]


  • Weng
  • Registratie: Juni 2001
  • Laatst online: 11-05-2024

Weng

Are y'all ready kids

Je moet het xml-bestand gewoon in je projectdir gooien en dan doet ie het. Ook al gooit ie de exe in de /debug dir, is het zoals Philip Wagenaar al zei dat de IDE de appdir bepaalt en die staat standaard op je projectdir.

Aye aye captain


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het is idd zo dat de debugger je executable runt met als actieve directory de project dir, en niet de directory waar de exe in staat. Als je je xml file dus in de debug dir zet werkt ie wel vanuit de verkenner, maar niet in de debugger. Als je 'm in de project dir zet is het precies andersom.

Het werkt imho het lekkerst als je alle relevante datafiles gewoon in je project dir zet, runnen vanuit de verkenner doe je toch amper (ik iig niet). Je zou eventueel in kunnen stellen dat ie de exe niet in de debug dir zet maar gewoon in je project dir.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1