Znalazłem rozwiązania dla Windows Forms z AppDomain, ale jaki byłby odpowiednik obiektu WPF Application
?Uzyskiwanie katalogu aplikacji z aplikacji WPF
Odpowiedz
One:
System.AppDomain.CurrentDomain.BaseDirectory
Innym sposobem na to byłoby:
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
string dir = Path.GetDirectoryName(exePath);
Spróbuj tego! Metoda
Nie ładna, ale działa. Dzięki :-) – Joey
Oto kolejny:
System.Reflection.Assembly.GetExecutingAssembly().Location
Ten uzyskuje lokalizację po _shadow-copying_, jak podano [w dokumentacji] (http: // msdn.microsoft.com/en-us/library/system.reflection.assembly.location.aspx). W rzeczywistości nie jestem pewien, czy sugestie przyjęte w odpowiedzi mają wpływ na kopiowanie w tle. –
Dało mi to podkatalog biblioteki DLL, do której dzwoniłem, a nie główny katalog programu. – strattonn
Można także użyć pierwszego argumentu polecenia argumenty liniowe:
String exePath = System.Environment.GetCommandLineArgs()[0]
Należy jednak zauważyć, że aplikacja "zła" może modyfikować argumenty wiersza poleceń. –
@Daniel: Dlaczego miałby to zrobić sam? Czy masz na myśli inną aplikację? –
@Merlyn: Zobacz http://blogs.msdn.com/b/oldnewthing/archive/2009/11/25/9928372.aspx cytuję: jest to "wygodnie zainicjowany parametr do kodu startowego procesu". Możesz więc celowo lub nieumyślnie zmodyfikować tę lokalizację pamięci. –
Możesz również swobodnie używać Application.StartupPath z System.Windows.Forms, ale musisz dodać odniesienie do zestawu System.Windows.Forms!
Spróbuj tego. Nie zapomnij o using System.Reflection
.
string baseDir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Użyłem po prostu string baseDir = Environment.CurrentDirectory;
i jego pracy dla mnie.
Powodzenia
Edit:
użyłem, aby usunąć tego rodzaju pomyłki ale wolę ją edytować, ponieważ myślę, że punkt na minus ta odpowiedź pomóc ludziom wiedzieć o niewłaściwy sposób. :) Mam rozumieć powyższe rozwiązanie nie jest przydatny i zmieniłem go string appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory;
Inne sposoby, aby dostać go to:
1. string baseDir =
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
2. String exePath = System.Environment.GetCommandLineArgs()[0];
3. string appBaseDir = System.IO.Path.GetDirectoryName
(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
Powodzenia
To jest bieżący katalog roboczy. To * może * zbiegać się z katalogiem aplikacji, ale są to oddzielne pojęcia (i co najważniejsze, katalog roboczy może się zmienić, np. Jeśli miałeś otwarte wspólne okno dialogowe plików). – Joey
@joey masz rację. Zmieniłem go na: string appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory; Dzięki. – QMaster
- 1. Uzyskiwanie wersji aplikacji Grails z poziomu aplikacji
- 2. WPF - Przełączanie z aplikacji WPF na Xbap
- 3. Otwórz WinForm z aplikacji WPF?
- 4. Uzyskiwanie bieżącego katalogu w aplikacji sieci web .NET
- 5. Jak zaktualizować ustawienia aplikacji w aplikacji WPF?
- 6. Osadzanie aplikacji Unity3D wewnątrz aplikacji WPF
- 7. Profilowanie WPF aplikacji
- 8. Plik manifestu aplikacji WPF
- 9. Brakuje szablonu aplikacji WPF
- 10. Wydajność aplikacji WPF
- 11. XPCService nie uzyskiwanie uruchamiane z aplikacji
- 12. WPF Browser Aplikacje vs aplikacji WPF pulpitu
- 13. Uzyskiwanie ścieżka aplikacji w Firemonkey
- 14. wpf - Pobierz wartości z pliku konfiguracyjnego aplikacji
- 15. Uruchom ponownie komputer z aplikacji C#/WPF
- 16. Budowanie wysoce modularnej aplikacji biznesowej z WPF?
- 17. Rozproszenie BAML w aplikacji WPF
- 18. Konwersja aplikacji Silverlight do WPF
- 19. Opcje raportowania dla aplikacji WPF?
- 20. błąd w uruchomionej aplikacji WPF
- 21. RaceOnRCWCleanup podczas zamykania aplikacji WPF
- 22. Jak dostosować uruchamianie aplikacji WPF?
- 23. Jak zmienić StartupUri aplikacji WPF?
- 24. Jak zapobiec ładowaniu aplikacji WPF?
- 25. Metoda SendKeys.Send w aplikacji WPF
- 26. Modal MessageBox w aplikacji WPF
- 27. Uzyskiwanie dostępu do aplikacji z wielu plików Web.config
- 28. Przyczyny wyjątku System.IO.FileLoadException w aplikacji OnStartup aplikacji WPF
- 29. Jak uruchomić pomruk serwera w katalogu dist zamiast katalogu aplikacji?
- 30. uzyskiwanie katalogu głównego scons
Ah, dzięki. Musiał jakoś przeoczyć AppDomain. Szukałem tego, właściwie ... – Joey
Nie wydaje się być dostępny w VS.Net 2010/WPF 4 – AndyD273
@ AndyD273: Działa dla mnie. Brakuje dyrektywy "using" lub odwołania do zespołu? – Helen