PDA

View Full Version : سوال: پیغام خطا هنگام رجیستر dll



negar442
شنبه 28 اسفند 1395, 22:37 عصر
من با استفاده از دستور regsvr32 میخوام یک فایل dll رو نصب کنم. dll مربوطه رو داخل پوشه system 32 ریختم (ویندوز 32 بیتی)
ولی یک پیغام خطا به شرح زیر ظاهر میشه و از نصب فایل جلوگیری میکنه:

The module some.dll failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found.


این فایل خراب نیست و در سیستم دیگه نصب میشه ولی در بقیه سیستمها نصب نمیشه! (حتی در حالت run as administrator)

راه حل رفع این مشکل چیه؟

ژیار رحیمی
یک شنبه 29 اسفند 1395, 10:31 صبح
سلام (خطا مربوط به لود نشدن dll از مسیر هست)لازم مبرم نیست که شما dll رو حتما در مسیر system32 رجیستر کنی در مسیر روت درایو C بریزد بعد مجدد تست بزنید.شما داخل برنامه هم با کد نویسی میتونی اقدام به نصب dll کنی.

negar442
دوشنبه 30 اسفند 1395, 22:39 عصر
با توجه به لینک زیر خواستمdll رو از طریق کدنویسی c# انجام بدم:

https://www.codeproject.com/Questions/67756/Register-a-COM-DLL-programatically-in-c-without-Ad


ولی نتیجه نگرفتم. خطای زیر هنگام اجرا ظاهر میشه:

An unhandled exception of type 'System.BadImageFormatException' occurred in mscorlib.dll


Additional information: The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)



به نظرتون مشکل از کجاست؟

ژیار رحیمی
چهارشنبه 02 فروردین 1396, 15:25 عصر
در لینکی که شما گذاشتی کاربر گفته کد من وقتی برنامه رو در حالت run as administrator اجرا میکنم dll رجیستر میشود ولی در حالت عادی(کاربر بدون مجوز مدیر سیستم) dll رجیستر نمیشود.دنبال راهی برای رجیستر کردن در حالت بدون مجوز مدیریتی هست.شما هم برنامه رو در حالت run as administrator اجرا کنید.البته در حالت کلی میتوان از طریق manifest سطح دسترسی برنامه را به مدیر سیستم ارتقا داد.

negar442
چهارشنبه 02 فروردین 1396, 19:33 عصر
مشکل اصلی من اینه که dll حتی به شکل دستی هم نصب نمیشه!
نام فایل zkemkeeper.dll هست
فقط روی سیستمی که برنامه رو نوشتم این dll نصب شد ولی در بقیه سیستمها چه 32 بیتی و چه 64 بیتی این فایل رجیستر نمیشه و همون خطای پست شماره یک رو میده!:افسرده:

2 هفتست که سرچ میکنم ولی جوابی یه دست نیاوردم!

ژیار رحیمی
پنج شنبه 03 فروردین 1396, 02:02 صبح
از راهنمای رجیستر کردن استفاده نمایید http://www.zkteco.eu/index.php/faq-category/sdk/registering-sdk
در هر صورت اگر موفق به رجیستر کردن نشدید dll را پیوست نمایید تا تست شود.

negar442
پنج شنبه 03 فروردین 1396, 17:37 عصر
بالاخره مشکلم حل شد.:لبخندساده:

اشتباه من این بود که فقط
zkemkeeper.dll رو تو پوشه system32 میریختم در حالی که تمام dll های موجود تو پوشه sdk لینک زیر رو باید اونجا (یا تو مسیرهای دیگه) کپی میکردم.:خجالت:




https://www.codeproject.com/Articles/1104538/Csharp-ZKTeco-Biometric-Device-Getting-Started


یعنی همون مسیری که zkem هست در کنارش بقیه dll ها هم باید باشه.