2011-10-18 15 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.