2011-11-28 23 views
8

Bir C++ dll projesi ve bunu kullanan bir C# projesi ile bir çözüm var. Sorun, C++ projesinin derleme yolunun çözüm klasöründedir ve C# projenin bin klasöründe (her biri hata ayıklama/bırakma ile yuvalanmış) olduğundan, DllImport bunları bulamamaktadır.
Bunu düzeltmenin standart bir yolu var mı?C#/C++ - DllImport DLL bulamıyor DLL

+0

Proje başvurularına dll eklediniz mi? – Tudor

+0

@Tudor Evet (boş olmayan doldurucu) – baruch

cevap

6

Bunu yapmanın yolu, her iki projeye yönelik yol yolunu aynı 'bin' dizinine ayarlamaktır. Sonra tüm projeleri tek bir klasöre yap. Bunu Proje ayarlarından değiştirebilirsiniz.

Başka bir teknik, DLL dosyasını C# projesinin klasörüne kopyalayan C++ uygulaması için bir oluşturma sonrası adımı kullanmaktır. Bu şekilde aslında herhangi bir yolu değiştiremezsiniz. Sadece bir DLL üzerinde kopyalayın. C++ projesinin projesini temizlediğinizde, aslında C# projec'ts bin dizinindeki kopyasına sahip olabileceğinizden ve neden beklenmedik gibi şeyler yapamayacağınız konusunda dikkatli olmalısınız.

Alternatif olarak, C++ DLL dosyasını bir sistem yoluna (ayrıca bir oluşturma sonrası adımın parçası olarak) dağıtabilirsiniz, ancak yukarıda belirtilenlerle aynı sorunları elde edersiniz.

Hata ayıklama için, bunları sunulan sırayla öneririm.