ฉันพบวิธีแก้ไขปัญหาสำหรับแบบฟอร์ม Windows ด้วย AppDomain แต่สิ่งใดที่เทียบเท่ากับApplication
วัตถุWPF
ฉันพบวิธีแก้ไขปัญหาสำหรับแบบฟอร์ม Windows ด้วย AppDomain แต่สิ่งใดที่เทียบเท่ากับApplication
วัตถุWPF
คำตอบ:
วิธีการหนึ่ง:
System.AppDomain.CurrentDomain.BaseDirectory
อีกวิธีที่จะทำคือ:
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
นี่คืออีก:
System.Reflection.Assembly.GetExecutingAssembly().Location
คุณยังสามารถใช้อาร์กิวเมนต์แรกของอาร์กิวเมนต์บรรทัดคำสั่ง:
String exePath = System.Environment.GetCommandLineArgs()[0]
ฉันใช้งานง่ายstring baseDir = Environment.CurrentDirectory;
และทำงานให้ฉัน
โชคดี
แก้ไข:
ฉันเคยลบข้อผิดพลาดประเภทนี้ แต่ฉันชอบที่จะแก้ไขเพราะฉันคิดว่าจุดลบในคำตอบนี้ช่วยให้ผู้คนรู้วิธีที่ผิด :) ฉันเข้าใจโซลูชันข้างต้นไม่มีประโยชน์และฉันเปลี่ยนเป็นstring appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory;
วิธีอื่นเพื่อให้ได้:
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);
โชคดี
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
string dir = Path.GetDirectoryName(exePath);
ลองนี้สิ!
ลองสิ่งนี้ using System.Reflection
อย่าลืม
string baseDir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
คุณยังสามารถใช้ Application.StartupPath ได้อย่างอิสระจาก System.Windows.Forms แต่คุณต้องเพิ่มการอ้างอิงสำหรับ System.Windows.Forms assembly!