2011-10-18 12 views
6

İki bölümden oluşan bir kitaplığım var - One .net derlemesi yerel bir üçüncü tarafa ait P/Invokes dll. Masaüstü modunda, bu yalnızca iyi çalışır: Ancak, derleme bir Metro stil uygulamasından başvuruda bulunurken ve çalıştırıldığında, P/InvokeSystem.DllNotFoundException, "DLL 'kitaplığı yüklenemedi" diye şikayetçi olur: Belirtilen modül bulunamadı. " Yerel dll özel bir şey yapmaz, yalnızca sunucuya giden TCP/IP bağlantılarını oluşturur. Sistem bunu bilemez, ancak yerli dll herhangi bir şey yapabilir. Bu yüzden bunu yapmanın mümkün olamayacağından şüpheleniyorum.Metro'dan yerel bir dll'ye nasıl/poke edilir?

Bazı dll arama sırası o yerli DLL dosyaları yüklemek mümkün olmaktadır hakkında ima msdn ilgili Metro tarzı uygulamalar üzerinde belirtilen?

Ayrıca bu link on msdn yükleme "kütüphaneler" bahsediyor ve manifest dosyasında PackageDependency bahseder, ama bana o P/Invoke mümkün olduğunu bir şekilde pakete bir yerli dll nasıl ekleneceği hala belirsiz bulduk.

+0

DLL'deki TCP/IP öğelerini yorumlayıp tekrar test etmeyi deneyebilir misiniz? Bu, DLL'i bağımlılıklarını bulamamaktan ayırt edecektir. Ayrıca, giden İnternet bağlantısını kullanmak istediğiniz Yetenekleri kontrol ettiniz mi? –

+0

Ben dll inşa etmedim. Çözümün bir parçası değil. Bu yüzden dll'nin inşa şeklini değiştiremem. İyi bir nokta, ikincil bağımlılığın hataya neden olabileceğidir! Bunu en kısa zamanda kontrol edeceğim. – vidstige

+1

@vidstige Muhtemelen bu sorunu şu ana kadar çözdünüz, ancak aksi halde lütfen [yanıtım] 'a (http://stackoverflow.com/a/12122750/650012) ilgili bir soruya bakın. –

cevap

0

Projenize ekleyin (sağ tıklayın proje, Ekle, Var olan Öğe.) Bu öğenin özelliklerinde, İçeriğin true olarak ayarlandığından emin olun (varsayılan değer olarak yanlıştır.) Oluştur.

+0

Cevabınız için teşekkür ederiz. Bu normal bir C# ortamında çalışıyor, ancak denedim ve Metro projesi üzerinde çalışmaya başlayamadım. – vidstige

+1

"Çalışmıyor" tanımlayın - derleme hatası mı? açılışta gizemli yeşil ekran? koşarken atılan exeption? –

+1

Soruyu belirli bir hata mesajıyla güncelledim! P/Invoke özniteliğiyle yöntemi çağırırken istisna atılır. – vidstige

0

Bu, muhtemelen tasarım gereğidir. Sorununuz, hata kodu 126'nın LoadLibrary'dan döndürülmesiyle oluşan bir hatadan kaynaklanabilir. Uygulamanız masaüstü modunda çalışıyorsa, uygulamanız için masaüstü modunu hedeflemelisiniz. Windows'un daha eski bir sürümünü de kullanabilirsiniz.

İlgili konular