Benutzer mit den meisten Antworten
Unterschiedlicher String abhängig von Debug und Veröffentlichung

Frage
Antworten
-
Hi,
Ich habe einen Pfad-String, der je nachdem, ob das Programm veröffentlicht ist oder nur der Debug läuft, unterschiedlich lauten muss. Kann mir jemand da helfen? Danke ;-)
im Normalfall bringt man sowas in der app.config bzw. web.config (für ASP.NET) unter.
http://jarloo.com/tips-tricks/appconfig-configurations/
Es geht aber auch per Code :)
#IF DEBUG THEN
MyPath = "Debug"
#ELSE
MyPath = "Release"
#END IFSiehe dazu:
http://msdn.microsoft.com/de-de/library/tx6yas69.aspx
http://msdn.microsoft.com/de-de/library/64yxa344.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert qwerqwerasdf Montag, 2. Mai 2011 19:48
Alle Antworten
-
Hi,
Ich habe einen Pfad-String, der je nachdem, ob das Programm veröffentlicht ist oder nur der Debug läuft, unterschiedlich lauten muss. Kann mir jemand da helfen? Danke ;-)
im Normalfall bringt man sowas in der app.config bzw. web.config (für ASP.NET) unter.
http://jarloo.com/tips-tricks/appconfig-configurations/
Es geht aber auch per Code :)
#IF DEBUG THEN
MyPath = "Debug"
#ELSE
MyPath = "Release"
#END IFSiehe dazu:
http://msdn.microsoft.com/de-de/library/tx6yas69.aspx
http://msdn.microsoft.com/de-de/library/64yxa344.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert qwerqwerasdf Montag, 2. Mai 2011 19:48
-
Hallo,
ich gehe davon aus, Deine Frage steht (indirekt) mit der letzten in Verbindung.
Über Environment.GetFolderPath kannst Du unterschiedlichste Standard-Verzeichnisse
über die SpecialFolder Enumeration abrufen.
Und Deine Angabe über Path.Combine zu einem vollständigen Pfad zusammenstellen.Welche Verzeichnisse nach Verwendungszweck in Frage kommen beschreibt u. a.:
As a developer, how should I use the special folders in Vista (and Windows 7)?Zum |DataDirectory| Platzhalter siehe: Where is DataDirectory ?
Gruß Elmar
-
Irgendwie klappt es doch noch nicht ganz. Kann mir vieleicht jemand eine Variable oder Konstante nennen, die unterschiedlich ist, je nachdm, ob man in VB "Debugging starten" gedrückt hat oder eine instalierte ClickOnce-Anwendung vorliegt? Danke im Voraus. ;)
-
If Debugger.IsAttach Then cstring = "Data Source = Poke.sdf;Persist Security Info=False;" Else cstring = "Data Source = " & Application.LocalUserAppDataPath & "\Poke.sdf;Persist Security Info=False;" End If
Hat sich erledigt. Debugger.IsAttach funktioniert doch. ;) -
Hallo,
Debugger.IsAttach funktioniert zwar, aber vermutlich nicht immer so wie Du es gerne hättest.
Wahr ist die Angabe nur, wenn Du das Programm direkt unter Visual Studio startest (mit F5)
Startest Du es ohne Debugger (STRG+F5) so wird Falsch zurückgegeben.
Auch ist es möglich bei einem ausgelieferten Programm einen Debugger anzuhängen (nicht mit Express),
dann wäre das Ergebnis wieder wahr.Insofern kann das Ergebnis vom erwarteten abweichen.
Grundsätzlich gilt:
Man sollte immer mit Verzeichnisangaben arbeiten, denn ohne Verzeichnis wird das
aktuelle Verzeichnis (Environment.CurrentDirectory verwendet, was sich aber zur Laufzeit
(durch unvorsichtige Komponenten) jederzeit ändern kann.Was Application.LocalUserAppDataPath (und auch UserAppDataPath) angeht:
Der zeigt bei einer Verteilung mit ClickOnce auf das bereits erwähnte DataDirectory.Wenn man eine SQL Server Compact Datenbank in Visual Studio/Express einbindet,
wird sie beim Programmstart in das Programmverzeichnis kopiert.Erst wenn man das Programm verteilt wird die Datenbank in das Benutzerverzeichnis kopiert -
und das wäre der gleiche Wert wie LocalUserAppDataPath.Gruß Elmar