46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# راهنمای حل مشکل PdfiumViewer.dll
|
||
|
||
## مشکل ۱: DllNotFoundException
|
||
خطای `System.DllNotFoundException` با پیام "Unable to load DLL 'pdfium.dll': The specified module could not be found"
|
||
|
||
## مشکل ۲: BadImageFormatException
|
||
خطای `System.BadImageFormatException` با پیام "An attempt was made to load a program with an incorrect format"
|
||
|
||
## علت مشکلات
|
||
1. فایل `pdfium.dll` در مسیر صحیح قرار ندارد
|
||
2. تضاد معماری (Architecture) بین برنامه و فایل DLL
|
||
|
||
## راه حلهای کامل
|
||
|
||
### مرحله ۱: حل مشکل DllNotFoundException
|
||
```powershell
|
||
# کپی به پوشه Release
|
||
Copy-Item "bin\Release\packages\PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256\content\x64\pdfium.dll" "bin\Release\pdfium.dll" -Force
|
||
|
||
# کپی به پوشه Debug
|
||
Copy-Item "bin\Release\packages\PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256\content\x64\pdfium.dll" "bin\Debug\pdfium.dll" -Force
|
||
```
|
||
|
||
### مرحله ۲: حل مشکل BadImageFormatException
|
||
فایل `HesabixBox.vbproj` بروزرسانی شده تا:
|
||
- `PlatformTarget` از `AnyCPU` به `x64` تغییر یافته
|
||
- این تضمین میکند که برنامه با معماری 64-bit کامپایل شود
|
||
|
||
### مرحله ۳: استفاده از اسکریپت خودکار
|
||
فایل `copy_pdfium_dll.ps1` را اجرا کنید:
|
||
```powershell
|
||
powershell -ExecutionPolicy Bypass -File copy_pdfium_dll.ps1
|
||
```
|
||
|
||
## بررسی حل مشکل
|
||
پس از اجرای راه حل، موارد زیر باید درست باشند:
|
||
- فایل `pdfium.dll` در `bin\Release\pdfium.dll` موجود باشد
|
||
- فایل `pdfium.dll` در `bin\Debug\pdfium.dll` موجود باشد
|
||
- پروژه با `PlatformTarget=x64` کامپایل شود
|
||
|
||
## نکات مهم
|
||
- این مشکلات معمولاً بعد از build مجدد پروژه رخ میدهد
|
||
- اگر مشکل ادامه داشت، مطمئن شوید که فایلهای کپی شده حذف نشدهاند
|
||
- برای پروژههای جدید، از تنظیمات بروزرسانی شده در `HesabixBox.vbproj` استفاده کنید
|
||
- برنامه حالا فقط روی سیستمهای 64-bit اجرا خواهد شد
|