Tôi có một dự án Ứng dụng Windows (A.exe) gọi một dự án khác Thư viện lớp học (B.dll).Thiết lập dự án không thay thế các tệp lắp ráp
A.exe có nút (myButton) rằng gọi phương thức Method1 từ B.dll.
Để cài đặt ứng dụng tôi đã tạo một dự án cài đặt ASetup.vdproj, mà Output tiểu học là dự án A.
Sau khi biên dịch cài đặt, quá trình cài đặt chạy mà không có bất kỳ vấn đề , khi a.exe bắt đầu và tôi nhấp vào myButton, aplication cung cấp cho không có lỗi.
Sau đó, tôi đã thay đổi B.dll và thêm phương thức mới Method2.
myButton hiện đang gọi Method2 từ B.dll thay vì Method1.
Tôi đã tăng phiên bản A.exe và tăng phiên bản ASetup.vdproj, nhưng không tăng phiên bản B.dll.
Sau khi cài đặt ứng dụng, tôi nhận thấy tôi có hai cài đặt A.exe trong Pa-nen điều khiển -> Thêm/ Xóa chương trình.
Khi chạy a.exe và nhấp myButton tôi có được một lỗi: " phương pháp Method2 không được tìm thấy trong B.dll", nó có nghĩa là các thiết lập không không thay thế B.dll trong cài đặt.
Tôi đã gỡ cài đặt và tôi nhận thấy rằng các tệp không bị xóa khỏi đĩa.
Câu hỏi của tôi là:
Tại sao cập nhật không quá trình cài đặt thứ hai B.dll? Nếu phiên bản B.dll được tăng lên, B.dll sẽ được thay thế trong khi cài đặt, nhưng vấn đề là dự án hiện tại của tôi có nhiều assembly bên ngoài, rất khó kiểm soát nếu chúng đã được sửa đổi hay không. Về cơ bản, những gì tôi muốn là tất cả các tập tin lắp ráp được thay thế trong mỗi lần cài đặt.
Tôi đang chờ phản hồi từ tất cả các bạn. Cảm ơn tất cả mọi người đã chú ý.
Tôi đã sử dụng VDPROJ đó và không mất nhiều thời gian để thực hiện VDPROJ hút. Dump VDPROJ bây giờ cho một công cụ khác (WiX hoặc IS 2010 LE) và bạn sẽ có một cuộc sống lâu hơn. :-) BTW, CM Expert trong tôi nói rằng thật điên rồ khi cố ý gửi 2 MSI với các assembly khác nhau có cùng phiên bản file. Truy xuất nguồn gốc là rất quan trọng. –
@Christopher Painter: Tất cả đều rất đúng. –
Ý nghĩa của lệnh "SET Sequence = 1450" này là gì? Có cách nào để nhìn vào "cơ sở dữ liệu" mà tôi giả định được nhúng vào MSI ở đâu đó? – Qwertie