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
cevap
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.
Proje başvurularına dll eklediniz mi? – Tudor
@Tudor Evet (boş olmayan doldurucu) – baruch