2013-03-21 32 views
7

Tôi đã viết một ứng dụng đơn giản C#Windows Forms và đồng nghiệp muốn thử nghiệm trên Windows 7 bằng cách sử dụng Parallels 8, vì anh chỉ có máy Mac.Chạy ứng dụng C# Windows Forms trên Windows 7 trong Parallels 8 lỗi

Vấn đề là, khi ông bắt đầu nó lên bằng cách sử dụng tập tin EXE trong thư mục debug, anh nhận được lỗi này:

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

Như bạn có thể nhìn thấy từ hình ảnh dưới đây, các file DLL cần thiết là đúng đó trong cùng một thư mục, và nếu anh ta lấy thư mục gỡ lỗi này vào một máy tính Windows, nó hoạt động tốt, vì vậy nó chắc chắn là một số loại máy ảo hoặc Parallels-cụ thể vấn đề.

Screenshot of error

Làm cách nào để khắc phục sự cố này?

tôi đã không thực sự sử dụng máy ảo đủ để biết những gì các vấn đề có thể là ...

+4

Định dạng nào có thể thực thi so với các thư viện? Cho nó trong cùng một thư mục nó sẽ tìm thấy nó vì vậy tôi tự hỏi nếu nó thực sự là một vấn đề định dạng xấu (32-bit vs 64-bit)? – Lloyd

+2

Bạn cũng có thể thấy đó là một vấn đề phụ thuộc bên ngoài, một cái gì đó trên thiết lập song song của bạn không tồn tại trên thiết lập khác của bạn, hãy thử sử dụng Dependency Walker - http://www.dependencywalker.com/ – Lloyd

+7

Tôi đã nhìn thấy một số điều thú vị xảy ra nếu dự án được biên dịch cho AnyCPU nhưng thư viện phụ thuộc là x86 và hệ điều hành đích là x64. –

Trả lời

0

nó muốn được thú vị để chạy ProcMon vào nó và xem những gì nó thực sự làm để thử và tìm các tập tin.

0

Đây có thể là vấn đề về ổ đĩa mạng. Yêu cầu anh ta sao chép thư mục đó từ ổ Y: (được chia sẻ từ máy Mac của anh ấy) sang ổ C: và chạy lại từ đó.

0

Dường như bạn đang cố gắng chạy ứng dụng từ một mạng chia sẻ, trong đó nền tảng .NET cấm rủi ro bảo mật của nó. Thử sao chép các tệp vào một nơi khác trên máy ảo như C: \ Temp.