Soru Proje yolumu nasıl alabilirim? [çift]


Olası Kopyalama:
c # kullanarak benim .exe için yol almak 

Merhaba bir sorum var: Kök proje yolumu nasıl alabilirim? Demek istediğim çözümün olduğu projedeki ilk klasör. Bu komutu buldum:

System.IO.Directory.GetCurrentDirectory();

Ancak bana sürüm klasörüne belirli bir yol veriyor: wanted_Path / bin / Yayın

Yani başka bir kod var mı, el ile mi kesip dosyalarımı Release klasörüne koymalı mıyım?


44
2018-01-27 17:01


Menşei


bunu düşünüyorum bağlantı aradığın şey. - Mr_Green
Çalıştırılabilir yolu istediğiniz anlamına mı geliyor? Proje yolu sadece bina. - Oded
Bunun, exe'ye giden yolu sormaktan önceki sorunun bir kopyası olduğunu sanmıyorum. Bu projenin yolunu soruyor! - oefe
@Oefe tarafından belirtilen neden için bir kopyası değil. - Paul T Davies
@oefe yeniden açılması için aday gösterildi. - Kyle Strand


Cevaplar:


Kullanabilirsiniz

string wanted_path = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));

36
2018-01-27 17:04



Benim için proje yolu yerine "C: \\ Program Files (x86) \\ Ortak Dosyalar \\ Microsoft Paylaşılan" ifadesini döndürür - algreat
Yukarıdaki kod sadece görsel stüdyonun içinden çalıştırdığınızda uygulanabilir! - PaRiMaL RaJ
Neden System.AppDomain.CurrentDomain.BaseDirectory'yi kullanmıyorsunuz? Daha basit, okunması kolay ve doğru yol veriyor - algreat
@algreat - o kök proje yolu için askin, whch 2 alt seviyededir! - PaRiMaL RaJ


Bu size kök klasörü verir:

System.AppDomain.CurrentDomain.BaseDirectory

.. veya ./ etc. Kullanarak buradan gidebilirsiniz. Ekleniyor .. .sln dosyasının bulunduğu klasöre götürür


70
2018-01-27 17:10



Nasıl kullanılır .. veya ../.. ile System.AppDomain.CurrentDomain.BaseDirectory ? - Stiger
@Stiger: Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"..\\..\\")) - Adiono
Birisi bunu arıyorsa, .NET Core sürümüne burada bırakıyorum: Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\")); - nopara73
vs2017 15.6'da bu, yürütülebilir dosyanın dizinini döndürecektir. - DSUK


var requiredPath = Path.GetDirectoryName(Path.GetDirectoryName(
System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase )));

17
2018-01-27 17:09





Programınızın VS projenizin nerede olduğu hakkında bilgisi yok. .exe için yol al ve git ../.. projenizin yolunu almak için.


6
2018-01-27 17:11



@CharlesB Nasıl kullanılır? ../.. ? - Stiger
Sadece göreli bir yol olarak kullanın, proje dizinine başvurur - CharlesB