Ho una libreria composta da due parti: un insieme .net che è P/Invokes in una dll di terze parti nativa. In modalità desktop funziona perfettamente: tuttavia, quando fa riferimento all'assieme di un'app di Metro e lo esegue, genera uno System.DllNotFoundException
su P/Invoke lamentandosi del fatto che "Impossibile caricare la libreria DLL": il modulo specificato non è stato trovato. "Come inviare P/Invoke ad una dll nativa dalla Metro?
La dll nativa non fa nulla di speciale ma crea solo connessioni TCP/IP in uscita verso un server. Il sistema non può saperlo, ma piuttosto la dll nativa potrebbe fare qualsiasi cosa. Questo è il motivo per cui sospetto che potrebbe non essere possibile farlo.
Qualche ordine di ricerca dll è menzionato su msdn per quanto riguarda le app in stile Metro, a suggerimento è possibile caricare dll nativi?
Inoltre ho trovato questo link on msdn parlando loading "librerie" e cita il PackageDependency nel file manifesto, ma per me non è ancora chiaro come aggiungere una dll nativa per il pacchetto in un modo che è possibile P/Invoke esso.
Puoi provare a commentare la roba TCP/IP nella DLL e riprovare? Ciò distinguerà non trovando la DLL da non trovare le sue dipendenze. Inoltre, hai controllato su Funzionalità che vuoi utilizzare la connessione Internet in uscita? –
Non ho creato la DLL. Non fa parte della soluzione. Quindi non posso cambiare il modo in cui è stata costruita la DLL. Buon punto che potrebbe essere una dipendenza secondaria che causa l'errore! Controlleremo appena possibile. – vidstige
@vidstige Probabilmente hai già risolto questo problema, ma per il resto dai un'occhiata a [la mia risposta] (http://stackoverflow.com/a/12122750/650012) a una domanda correlata. –