NEWS

[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

[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
Đăng bởi: Thảo Meo - Lượt xem: 14362 13:56:17, 27/08/2019DEVEXPRESS   In bài viết

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#.

[C#] Store Library to Special Folder Winform

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.

store_dll

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:

store_dll_special

Ở 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)

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="lib"/>
  </assemblyBinding>
</runtime>

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.

gom_dll_winform

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!

 

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[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
Đăng bởi: Thảo Meo - Lượt xem: 14362 13:56:17, 27/08/2019DEVEXPRESS   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.