2009-06-24 38 views
5

Cài đặt khiên ra mắt 2009: Basic MSI từ dòng lệnh gõ setup.exe/s/v/qn cài đặt âm thầm. Nhưng nếu cài đặt của nó một lần trước khi nó chọn "Sửa đổi" theo mặc định và không đi để thay thế các tập tin. Nhưng tôi cần phải sao chép lại các tập tin. Làm thế nào để thực hiện "Sửa chữa" trên cài đặt im lặng thứ hai theo mặc định?InstallShield 2009 cơ bản MSI im lặng cài đặt: làm thế nào để thiết lập "Sửa chữa" theo mặc định

Trả lời

0
Setup.exe /s /v"/f {11111111-1111-1111-1111-111111111111}" /v"/qn" 

trong đó "{11111111-1111-1111-1111-111111111111}" là ProductIDode GUID của cài đặt bạn muốn sửa chữa.

+1

từ lời nhắc lệnh thực hiện: setup.exe/s/v "/ f {89DC2D2E-F4C3-4BD1-8853-2EA5F50A8C0C}" mở cửa sổ trình cài đặt cửa sổ, nhiều mô tả chuyển đổi được cung cấp ở đó. Nhưng setup.exe không sao chép các tập tin mà nếu tôi nhấp đúp vào tập tin setup.exe nào. Phải làm gì? – Samir

+0

Leara, tôi sử dụng một lệnh như (từ dấu nhắc lệnh): setup.exe/s/v "/ qn REINSTALL = TẤT CẢ" những gì nó làm là: nếu setup.exe chạy trước khi nó có thể triển khai tập tin và nó không cài đặt ở lần đầu tiên (nơi mà nó không được cài đặt trước) !!! nhưng những gì tôi muốn là cho dù setup.exe đã được cài đặt hay không nó nên tái triển khai các tập tin một lần nữa ... Tôi nên làm gì? – Samir

2

Trước hết: có vẻ như chúng tôi cần thêm một số chi tiết về những gì bạn đang cố gắng đạt được. Bạn có muốn cài đặt lại sản phẩm để sửa bất kỳ thành phần nào bị hỏng hay bạn muốn cài đặt phiên bản mới của sản phẩm (có khả năng cạnh nhau với thiết lập trước đó).

Câu trả lời của William có vẻ chính xác, nhưng có thể có một số vấn đề với dấu ngoặc kép. Hành vi bạn mô tả cho biết rằng Trình cài đặt Windows không thể phân tích cú pháp dòng lệnh. Tôi đã không kiểm tra này, nhưng thử:

Setup.exe/s/v "/ f {11111111-1111-1111-1111-111111111111}/qn"

Một số thông tin nền: thiết lập. exe là một Trình khởi chạy thiết lập của nhà cung cấp Installshield-. Bất cứ điều gì sau /V trong dòng lệnh được chuyển "như là" vào tệp exe Windows Installer chính msiexec.exe (msiexec.exe command line parameter reference).

Xin lưu ý rằng Windows Installer không giống như bất kỳ giải pháp triển khai trước nào. Một khi bạn đã cài đặt một MSI, Windows Installer giữ một bản ghi của GUIDs nội bộ của cài đặt. Do đó không thể cài đặt nhiều phiên bản của cùng một sản phẩm (trừ khi bạn thiết kế MSI cho điều này).

Một số dòng msiexec.exe mẫu lệnh:

Install:

  • msiexec.exe/i MySetup.msi/q

Uninstall:

  • msiexec.exe/x MySetup.msi/qn
  • msiexec.exe/x {11111111-1111-1111-1111-111111111111}/qn

Sửa chữa:

  • msiexec.exe/f MySetup.msi/qn
  • msiexec.exe/f {11111111-1111-1111-1111-111111111111}/qn

quản lý hình ảnh (trích xuất tập tin nguồn từ MSI):

  • msiexec.exe/A MySetup.msi TargetDir = "C: \ ExtractSourcesHere"

Xóa/qn khỏi bất kỳ dòng lệnh nào ở trên để chạy tương tác thay vì âm thầm.

+0

Tôi cần cài đặt chương trình âm thầm [bộ cài đặt msi cơ bản]. Trường hợp-1: nếu chương trình không được cài đặt. Những gì tôi cần: Cài đặt nó Tôi đã làm gì: setup.exe/s/v/qn Trường hợp-2: nếu chương trình đã được cài đặt. Những gì tôi cần: một lần nữa cài đặt chương trình. Tại sao tôi cần: có thể sẽ có tệp bị thiếu. Vì vậy, tôi cần một lệnh duy nhất để thực thi sẽ đáp ứng hai trường hợp trên. – Samir

1

InstallShield @ 2009

Thêm mã sau:

chức năng OnMaintUIBefore() ... ... bắt đầu // nếu là chế độ im lặng sau đó thiết lập như chế độ sửa chữa và tiến hành if (MODE = SILENTMODE) sau đó nType = REPAIR; goto Dlg_SdFeatureTree; endif;

1

Tôi vừa tìm thấy giải pháp: Đối với MSI cơ bản, mở chế độ xem Trình quản lý thuộc tính và đặt thuộc tính _IsMaintenance thành "Cài đặt lại".

+0

Không làm việc cho tôi. Cảm ơn mặc dù. – ashes999

Các vấn đề liên quan