[C#] Hướng dẫn gom như thư viện dll vào một thư mục đặc biệt tách rời file chạy exe winform
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách gom các thư viện dll vào một thư mục và không nằm chung với file chạy chương trình exe winform C#. Khi các bạn lập trình ứng dụng Winform C# hay VB.NET , thì khi các bạn build ứng ...
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách gom các thư viện dll vào một thư mục và không nằm chung với file chạy chương trình exe winform C#.
Khi các bạn lập trình ứng dụng Winform C# hay VB.NET, thì khi các bạn build ứng dụng.
Các bạn sẽ thấy các thư viện dll của mình file chạy exe và các file config đều nằm chung một folder "Debug", và nếu bạn nào đang sử dụng Devexpress nữa thì sẽ thấy rất rối mắt.
Và mình làm sao để gom tất cả các thư viện hay hình ảnh vào một folder khác, mà không nằm ngoài cùng với file chạy chương trình.
Các bạn có thể xem hình ảnh bên dưới đây:
Hình 1: là hình mặc định ứng dụng khi build
Hình 2: đã gom các thư viện vào chung một folder Lib.
Từ hình 1 sang hình 2, các bạn sẽ dễ dàng thấy được trông ứng dụng của mình gọn gàng và đẹp hơn nhiều rồi phải không.
Bây giờ mình sẽ hướng dẫn thực hiện gom tất cả các file trừ file dll vào thư mục lib.
Đầu tiên, các bạn mở file app.config và thêm vào đoạn code như hình bên dưới:
Ở mục, privatePath="lib" (lib là tên thư mục mà các bạn muốn gom cái thư viện và hình ảnh, hay bất cứ gì vào)
Bước 2: Các bạn mở Setting của Project => tab Build Events
Sau đó, ở mục post-build event command line, các bạn thêm vào nội dung như hình bên dưới, để khi các bạn chạy start project, nó sẽ tự động move file vào file lib.
Code cho các bạn paste vào:
; Move all assemblies and related files to lib folder ROBOCOPY "$(TargetDir) " "$(TargetDir)lib " /XF *.exe *.config *.manifest /XD lib logs data /E /IS /MOVE if %errorlevel% leq 4 exit 0 else exit %errorlevel%
Ở đoạn code này đơn giản là sử dụng lệnh command ROBOCOPY.
Tham số: $(TargetDir) => thư mục Debug của các bạn.
- XF: bao gồm những files (nhưng không di chuyển các file có phần mở rộng: *.exe, *.config or *.manifest files)
- XD: bao gồm những folders (nhưng không di chuyển lib, logs and data subfolders)
Vậy là xong, hy vọng bài viết sẽ giúp ích được cho các bạn.
Thanks for watching!