2013-03-21 11 views
7

Ho scritto una semplice applicazione C#Windows Forms e un collega vuole testarlo su Windows 7 utilizzando Parallels 8, perché ha solo un Mac.Esecuzione di un'applicazione C# Windows Form su Windows 7 in Parallels 8 error

Il problema è che quando inizia l'alto utilizzando il file EXE nella cartella di debug, ottiene questo errore:

Error starting OMAPI (Unable to load DLL 'libomapi.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)) Check the required .dll files are present the correct versions: OmApiNet.dll libomapi.dll

Come si può vedere dall'immagine qui sotto, i file DLL richiesti sono proprio lì nella stessa cartella, e se prende questa cartella di debug su un PC Windows funziona perfettamente, quindi è sicuramente una sorta di macchina virtuale o problema specifico di Parallels.

Screenshot of error

Come posso risolvere questo problema?

Non ho veramente usato macchine virtuali abbastanza per sapere che cosa il problema potrebbe essere ...

+4

Quale formato è l'eseguibile rispetto alle librerie? Dato che è nella stessa cartella dovrebbe trovarlo quindi mi chiedo se è davvero un problema di formato non valido (32-bit vs 64-bit)? – Lloyd

+2

Potresti anche scoprire che si tratta di un problema di dipendenze esterno, qualcosa che non esiste nell'installazione parallela delle altre impostazioni, prova con Dependency Walker - http://www.dependencywalker.com/ – Lloyd

+7

Ho visto alcune cose divertenti succede se il progetto è compilato per AnyCPU ma una libreria dipendente è x86 e il sistema operativo di destinazione è x64. –

risposta

0

che sarebbe interessante per eseguire ProcMon su di esso e vedere che cosa sta realmente facendo per cercare di trovare i file.

0

Questo è probabilmente più un problema di unità di rete. Fagli copiare quella cartella dall'unità Y: (condivisa dal suo Mac) all'unità C: ed eseguila di nuovo da lì.

0

Sembra che si stia tentando di eseguire l'applicazione da una condivisione di rete, in cui la piattaforma .NET vieta di costituire un rischio per la sicurezza. Prova a copiare i file in qualche altro posto sulla macchina virtuale come C: \ Temp.