Các tình huống và lỗi thường gặp cần xử lý khi đóng gói ứng dụng (đặc biệt là ứng dụng C# WinForms / .NET) để đem đi chạy trên máy khách bao gồm:
1. Lỗi thiếu Runtime / Framework (Lỗi phổ biến nhất)
Nguyên nhân: Máy chưa cài đặt môi trường thực thi của .NET (ví dụ .NET 8.0) mà ứng dụng của bạn yêu cầu. Khi chạy file
.exe, máy sẽ báo lỗi không tìm thấy runtime hoặc tự văng mà không lên giao diện.Cách xử lý:
Khi đóng gói hoặc Publish, cần cấu hình để bao gồm luôn bộ
Self-Contained(đóng gói kèm luôn runtime vào trong bộ cài nếu muốn máy khách không cần cài gì thêm) hoặc hướng dẫn khách cài gói.NET Desktop Runtimetương ứng.
2. Lỗi đường dẫn tương đối của Database (Connection String)
Nguyên nhân: file chuỗi kết nối bị trỏ cứng đường dẫn tuyệt đối (ví dụ
D:\Data\ExamChair.db), khi đem sang máy không có ổD:hoặc thư mục đó, phần mềm sẽ không kết nối được database hoặc báo lỗi tạo file mới trắng tinh.Cách xử lý: Dùng đường dẫn tương đối (như
Data Source=ExamChair.db) để ứng dụng luôn tìm file database nằm cùng thư mục với file.exe.
3. Lỗi thiếu file DLL đi kèm hoặc file cấu hình (appsettings.json)
Nguyên nhân: Khi đóng gói thiếu các thư viện phụ trợ (các file
.dllcủa bên thứ ba như SQLite, Entity Framework,...) hoặc quên đưa fileappsettings.jsonvào thư mục phân phối.Cách xử lý: Đảm bảo khi tạo script trong Inno Setup, câu lệnh
Sourcequét toàn bộ thư mụcReleaseđể mang theo đầy đủ các file thành phần.
4. Lỗi thiếu quyền ghi dữ liệu (Permission / Access Denied)
Nguyên nhân: Nếu ứng dụng của bạn được cài vào thư mục mặc định là
C:\Program Files\, Windows sẽ quản lý quyền rất chặt. Khi phần mềm cố gắng ghi thêm dữ liệu, sửa đổi hoặc cập nhật file database.dbnằm ngay trong thư mục đó, nó sẽ bị từ chối quyền (Access Denied) và gây lỗi runtime.Cách xử lý:
Hoặc cấu hình cho ứng dụng tự động chạy với quyền Administrator (
RunAsAdmin).Hoặc thiết kế lưu file database sang thư mục AppData của người dùng (
Environment.SpecialFolder.ApplicationData) thay vì để chung thư mục cài đặt gốc.
0 nhận xét Blogger 0 Facebook
Post a Comment
Cám ơn bạn đã phản hồi