Saya membuat aplikasi konsol sederhana dengan kode berikut:
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);
Saya menyalin hasil yang dapat dieksekusi ke C:\temp2
. Saya kemudian menempatkan jalan pintas ke executable itu C:\temp3
, dan menjalankannya (sekali dari exe itu sendiri, dan sekali dari jalan pintas). Ini memberi output berikut dua kali:
C:\temp2
C:\temp2\
C:\temp2
C:\temp2
C:\temp2
Sementara saya yakin pasti ada beberapa alasan cockamamie untuk menjelaskan mengapa ada lima metode yang berbeda yang melakukan hampir hal yang persis sama, saya pasti tidak tahu apa itu. Namun demikian, kelihatannya dalam sebagian besar keadaan, Anda bebas memilih mana yang Anda sukai.
UPDATE:
Saya memodifikasi properti Shortcut, mengubah bidang "Mulai Di:" menjadi C:\temp3
. Ini menghasilkan output sebagai berikut:
C:\temp2
C:\temp2\
C:\temp3
C:\temp3
C:\temp3
... yang menunjukkan setidaknya beberapa perbedaan antara metode yang berbeda.