Tôi đang tạo một ứng dụng cài đặt WPF với giao diện người dùng tùy chỉnh. Tôi bắt đầu với hướng dẫn của Bryan P. Johnston: http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/WiX: cách truy cập/thay đổi thư mục cài đặt trong bootstrapper được quản lý?
Một nơi nào đó trong quan điểm của tôi, tôi có một đơn giản TextBox
mà liên kết với một tài sản InstallationPath
trong MainViewModel
tôi.
Bây giờ tôi muốn đường dẫn này được sử dụng khi người dùng nhấp vào "Cài đặt". Đối với điều này, tôi có một nút liên kết với InstallCommand
của tôi. Phương pháp sau đây được gọi (lấy trực tiếp từ hướng dẫn):
private void InstallExecute()
{
Bootstrapper.Engine.Plan(LaunchAction.Install);
}
Làm cách nào để đặt gói vào thư mục tài sản của tôi InstallationPath
?
Edit:
Tôi tìm thấy một câu hỏi tương tự ở đây trên Stackoverflow:
Specify the INSTALLLOCATION of packages in WiX inside the Burn managed bootstrapper
Câu trả lời có từ Bob Arnson
Sử dụng một con MsiProperty cho mỗi MsiPackage để chỉ định INSTALLLOCATION = [BurnVariable]. Sau đó sử dụng Engine.StringVariables để thiết lập BurnVariable.
Bây giờ, tôi nghĩ rằng tôi có thể truy cập vào StringVariables
trong InstallExecute
của tôi như thế này
private void InstallExecute()
{
Bootstrapper.Engine.StringVariables["BurnVariable"] = InstallationPath;
Bootstrapper.Engine.Plan(LaunchAction.Install);
}
Nhưng nơi để xác định biến này? Tôi đoán đâu đó trong Product.wxs?
Hey Michael, tôi đi theo cùng một hướng dẫn này và tôi đang phải đối mặt với một vấn đề mà trong nâng cấp lớn, các exe trước là không nhận được gỡ bỏ như một mới được cài đặt cạnh nhau. Tôi đã tăng cả phiên bản EXE và các phiên bản MSIs đi kèm. Tôi thấy một số người khác bình luận cùng một vấn đề bên dưới hướng dẫn. Bạn có gặp sự cố này không? Nếu vậy làm thế nào bạn vượt qua nó? :(Cần một số người giúp đỡ – mayooran