Tôi đã tạo một ứng dụng giao diện điều khiển đơn giản với mã sau:
Console.WriteLine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
Console.WriteLine(System.AppDomain.CurrentDomain.BaseDirectory);
Console.WriteLine(System.Environment.CurrentDirectory);
Console.WriteLine(System.IO.Directory.GetCurrentDirectory());
Console.WriteLine(Environment.CurrentDirectory);
Tôi đã sao chép kết quả thực thi vào C:\temp2
. Sau đó, tôi đã đặt một lối tắt đến tệp thực thi đó C:\temp3
và chạy nó (một lần từ chính exe và một lần từ phím tắt). Nó đã cho các đầu ra sau cả hai lần:
C:\temp2
C:\temp2\
C:\temp2
C:\temp2
C:\temp2
Mặc dù tôi chắc chắn phải có một số lý do cockamamie để giải thích tại sao có năm phương pháp khác nhau thực hiện gần như chính xác cùng một thứ, tôi chắc chắn không biết nó là gì. Tuy nhiên, trong hầu hết các trường hợp, có vẻ như bạn có thể tự do chọn bất cứ thứ gì bạn thích.
CẬP NHẬT:
Tôi đã sửa đổi các thuộc tính Shortcut, thay đổi trường "Start In:" thành C:\temp3
. Điều này dẫn đến kết quả đầu ra sau đây:
C:\temp2
C:\temp2\
C:\temp3
C:\temp3
C:\temp3
... trong đó thể hiện ít nhất một số điểm khác biệt giữa các phương pháp khác nhau.