Tôi có một dự án thư viện lớp mà tôi đã thực hiện. Hãy gọi nó là ClassA. Trong ClassA tôi cần truy cập một số công cụ nằm trong dll (ToolsDLL.dll).Bạn có thể gộp các dll lại với nhau không?
Trong ClassA tôi đã thêm ToolsDLL.dll vào dự án và chọn tệp ToolsDLL.dll để Sao chép vào thư mục Đầu ra LUÔN. Vì vậy, thư viện xây dựng và biên dịch tốt và trong thư mục đầu ra tôi thấy ClassA.dll cùng với ToolsDLL.dll
Tiếp theo, tôi muốn viết một ứng dụng, nói App_A sử dụng các phương thức trong ClassA. Vì vậy, trong dự án App_A của tôi, tôi đã thêm một tham chiếu đến ClassA.dll để tôi có thể truy cập vào không gian tên của nó. Tất cả là tốt và tốt, nó xây dựng/biên dịch.
Vấn đề là ngay sau khi tôi chạy App_A và nó được đến một điểm mà ToolsDLL.dll cần phải được sử dụng nó ném một ngoại lệ "Không thể tải ToolsDLL.dll. Tôi không hiểu làm thế nào nó có thể là nó không thể tìm thấy dll đó vì nó nằm trong cùng thư mục với ClassA.dll
Tôi thấy rằng nếu tôi đặt ToolsDLL.dll vào thư mục đầu ra của App_A nó hoạt động tốt. Có cách nào xung quanh không? Có bất kỳ cách nào mà ToolsDll.dll có thể bằng cách nào đó đi kèm với ClassA.dll Lý do là khách hàng của tôi sẽ viết các ứng dụng riêng của họ tương tự như AppA và nó sẽ được tốt đẹp nếu họ chỉ phải tham khảo một tập tin trong dự án của họ và không nhiều .
Có vẻ như ILMerge chỉ có thể được sử dụng trên một hội đồng .Net. Đúng không. Trong trường hợp của tôi, ToolsDLL.dll đã được cung cấp cho tôi bởi một sản xuất chip. Tôi không biết nếu nó là một hội đồng .net hay không. Điều đó có quan trọng không? – PICyourBrain
Có, tôi tin rằng nó chỉ hoạt động cho các hội đồng .NET. Để tìm ra loại '.dll' bạn đã có, có lẽ bạn có thể sử dụng.Tiện ích NET SDK 'ildasm', để thử và tháo rời' .dll'. Nếu đó là một hội đồng .NET, điều này sẽ hoạt động; nếu nó chứa mã gốc, 'ildasm' sẽ thất bại. – stakx
Tôi nhận thấy trong Visual Studio nếu tôi đi đến ToolsDll.dll -> Thuộc tính có một tài sản được gọi là hành động. Tôi có thể chỉ cài đặt tài nguyên này thành Tài nguyên được nhúng không? – PICyourBrain