Tôi đang viết một plug-in cho một ứng dụng khác thông qua API. Các trình cắm thêm được phân phối một DLL. Có thể nhúng các tệp khác vào tệp DLL như pdf, hình ảnh, tệp trợ giúp chm, v.v. Tôi muốn có thể cung cấp tài liệu với trình cắm của tôi nhưng tôi vẫn muốn duy trì khả năng phân phối plugin -trong một tệp duy nhất, người dùng chỉ có thể kéo và thả vào ứng dụng để cài đặt.Tôi có thể nhúng các tệp khác vào một tệp DLL không?
Trả lời
Resource Files là những gì bạn cần.
Có, bạn có thể làm điều đó.
Thêm tệp tài nguyên vào dự án của bạn. Mở tệp tài nguyên trong Visual Studio và bấm Chèn tài nguyên. Bạn có thể chọn các loại tài nguyên khác nhau, bao gồm các tệp bên ngoài.
Visual Studio sẽ tạo mã cho bạn để bạn có thể truy xuất tệp dưới dạng mảng byte tại thời gian chạy từ tên của chúng thông qua số nhận dạng Resources
.
Chắc chắn, bạn có thể nhúng tài nguyên vào tệp DLL của mình. Sau đó, khi chạy, bạn chỉ cần thực hiện:
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf");
Điều này sẽ cung cấp cho bạn luồng vào tệp Foo.pdf
được nhúng trong tệp DLL của bạn. Hãy chú ý đến thực tế rằng tên tài nguyên phải được phạm vi bởi không gian tên của loại mà từ đó bạn đang gọi phương thức.
Chắc chắn, chỉ cần biến chúng thành "Tài nguyên nhúng" trong VS.NET (giả sử bạn đang sử dụng nó). Sau đó, bạn có thể đọc chúng qua API tài nguyên hoặc chỉ đơn giản là với Assembly.GetManifestResourceStream().
Là tùy chọn thay thế, nếu bạn cần giải nén và lưu tệp trên máy người dùng (nói tệp chm bạn muốn truy cập bên ngoài ứng dụng), bạn cũng có thể thực hiện tương tự với tệp zip.
Bạn đã nói rằng bạn muốn tệp được "Kéo" vào ứng dụng của mình. Đơn giản chỉ cần có các sự kiện DDE của bạn kiểm tra xem tệp có phải là một tệp zip (thậm chí có thể sử dụng một cái gì đó giống như một lọ chứa siêu dữ liệu) và giải nén các tệp cần thiết, bao gồm cả plugin thực tế.
Đây cũng là ý tưởng tương tự như tài liệu openxml, chúng thực sự chỉ là ẩn trong ngụy trang.
- 1. Tôi có thể nhúng biểu tượng vào tệp .hta không?
- 2. Plugin DLL phụ thuộc vào các tệp DLL khác
- 3. Nhúng * .exe vào một dll
- 4. Nhúng các tệp DLL vào một tệp thực thi được biên dịch
- 5. cách nhúng các tệp WMV vào tệp html của tôi
- 6. Nhúng dll không được quản lý vào một C# dll
- 7. Nhúng tệp vào tệp EXE trong VB6
- 8. Ruby có thể nhập một tệp .dll .NET không?
- 9. Nhúng xsl vào một tệp XML
- 10. Khi xây dựng một tệp DLL, tệp LIB được tạo có chứa tên DLL không?
- 11. Có thể đưa tệp CSS vào một tệp CSS khác bằng truy vấn phương tiện không?
- 12. Nhúng tệp .WMV vào Chrome
- 13. Tôi có thể tải một tệp .gitconfig từ tệp khác không?
- 14. Tôi có thể soạn một Tệp Cấu hình Mùa xuân từ các tệp nhỏ hơn không?
- 15. Tệp .js có thể "bao gồm" một tệp .js khác
- 16. Có thể bao gồm một tệp MetaPost khác không?
- 17. Có thể lắp ráp C# .dll có điểm vào không?
- 18. Tôi có thể có một trường tệp ở dạng đầu vào không?
- 19. Làm thế nào để nhúng .tlb dưới dạng tệp tài nguyên vào .NET Assembly DLL?
- 20. Nhúng dylib vào Xamarin.Mac binding dll
- 21. .NET: Mở tệp, được nhúng vào tệp tài nguyên
- 22. Làm thế nào tôi có thể dịch ngược một loạt các tệp DLL .NET thành một dự án Visual Studio
- 23. Làm cách nào để gọi một tệp javascript được nhúng trong một dll trong ứng dụng web asp.net của tôi?
- 24. Nếu tôi có nội dung của một tệp zip trong một chuỗi Python, tôi có thể giải nén nó mà không cần viết nó vào một tệp không?
- 25. Có thể tải các phiên bản khác nhau của cùng một DLL trong Java không?
- 26. Tôi có thể hợp nhất các tệp trong git không?
- 27. Bạn có thể thêm các tệp nguồn khác vào tệp thực thi sau khi được xác định không?
- 28. Tôi có thể tích hợp các tệp đã kiểm tra vào một nhánh khác trên mỗi lực lượng
- 29. Tôi có thể in lại một tệp spool không?
- 30. Làm thế nào để thêm một Plugin DLL mà không có tệp NSH vào tập lệnh NSIS của tôi?
Cảm ơn bạn! –
bạn nên giải thích cách thực hiện, không chỉ dán liên kết – Toolkit
Liên kết bị hỏng! – LuizLoyola