2008-12-02 13 views
8

Farklı bir klasördeki bir uygulamadan çağrılacak bir dll (C#) içinde çalışırken yükleme yolunu yeniden almanın akıllıca bir yolu var mı?dll'nin kurulumunu gerçekleştirdikten sonra C# 'da yükleme dizini nasıl edinilir

Uygulama için bir eklenti geliştiriyorum. Eklentim C# ile yazılmıştır. Kullanacak uygulama C yazılır ve değerlendirme sırasında bazı şeyleri derlemek gerekir, bu yüzden C# ile ortak çalışma yürüten bir C++ dll ile bir middlestep var ve sadece C çalışabileceği dışarı temiz bir arayüz gösterir.

Ne dağıttığım, C++ bölümü için bir .dll ve bir .lib ve .h kümesi (bazen statik bağlama gerekli olacaktır).

kurulum denediğiniz ve C# dll geçerli dizin bilgisi dışında yazdırırken:

 Console.WriteLine(Directory.GetCurrentDirectory()); 

ya:

 Console.WriteLine(System.Environment.CurrentDirectory); 

Ben yürütülebilir yolunu olsun.

Yani, bir kez daha, dll'imin kurulum yolunu nasıl alabilirim?

Düzenleme: Her ikisi de çalıştı! Hızlı cevap çocuklar için teşekkürler!

cevap

11

Bence istediğin şey Assembly.GetExecutingAssembly().Location.

using System.IO; 
using System.Windows.Forms; 
string appPath = Path.GetDirectoryName(Application.ExecutablePath); 

Veya: bu iki yoldan

typeof(TypeInMyModule).Assembly.Location 
3

bu deneyin

using System.IO; 
using System.Reflection; 
string path = Path.GetDirectoryName(
Assembly.GetAssembly(typeof(MyClass)).CodeBase); 
İlgili konular