2014-05-12 20 views
6

Vì vậy, tôi đã có một trình cài đặt ghi khá đơn giản, chủ yếu để bao gồm nâng cấp hoặc đôi khi một gói trình điều khiển cho phần cứng ứng dụng của chúng tôi cần nói chuyện.Wix Burn, làm cách nào để cho phép hạ cấp?

MSI của chúng tôi tạo hỗ trợ nâng cấp hoặc hạ cấp.

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"  
    xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> 
    <Bundle Name="My App Name" Manufacturer="Company Name" Version="!(bind.packageVersion.MyAPP_MSI)" 
      IconSourceFile="MyIcon.ico" DisableModify="yes" DisableRemove="yes" 
      UpgradeCode="{15E598EF-89CE-470B-8CEF-E32C8983DA33}" > 
     <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" > 
      <bal:WixStandardBootstrapperApplication 
       LogoFile="$(var.CoreComponents.TargetDir)InstallerGraphics\Bootstrapper_Logo.png" 
       LicenseFile="$(var.CoreComponents.TargetDir)AppRoot\App License.rtf" 
       SuppressOptionsUI="yes" /> 
     </BootstrapperApplicationRef> 

     <Chain> 
      <PackageGroupRef Id="NetFx451Web"/> 

      <MsiPackage DisplayName="My full Application Name" Id="MyAPP_MSI" SourceFile="$(var.Installer_MyAppMSI_TargetPath)" 
         DisplayInternalUI="yes" ForcePerMachine="yes" Visible="yes" /> 

     <MsiPackage DisplayName="My Hardware Driver" Id="Installer_MSI_Driver" SourceFile="$(var.Installer_Driver.TargetPath)" 
        DisplayInternalUI="yes" ForcePerMachine="yes" Visible="yes" /> 

     </Chain> 
    </Bundle> 
</Wix> 

Thông thường chúng tôi có bản phát hành beta và khi người dùng muốn hạ cấp từ bản beta xuống bản phát hành ổn định của chúng, họ không thể thực thi trình cài đặt EXE cũ. Họ phải loại bỏ gói trước đó từ Add/Remove Programs một cách rõ ràng để cài đặt Burn EXE cũ hơn.

Đây không phải là vấn đề với cài đặt dựa trên MSI. Làm cách nào để chúng tôi quay lại chức năng đó?

Log

[0CB8:067C][2014-06-23T11:10:04]i001: Burn v3.8.1128.0, Windows v6.1(Build 7601: Service Pack 1), path:\\iop-filesvr\IOP\Builds\Main\8.1.240\IO Practiceware Client Setup.exe, cmdline: '-burn.unelevated BurnPipe.{197B8193-6EFC-4ED0-AF90-DE7205F13E65} {CD23A8AB-520B-4F5D-BCB9-98998C5A1EC0} 2216' 

[0CB8:067C][2014-06-23T11:10:04]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\jeff\AppData\Local\Temp\IO_Practiceware_Client_8.1.240.0_20140623111004.log' 

[0CB8:067C][2014-06-23T11:10:04]i000: Setting string variable'WixBundleOriginalSource' to value '\\iop-filesvr\IOP\Builds\Main\8.1.240\IO Practiceware ClientSetup.exe' 

[0CB8:067C][2014-06-23T11:10:04]i000: Setting string variable 'WixBundleName' to value 'IO Practiceware Client 8.1.240.0' 

[0CB8:067C][2014-06-23T11:10:05]i100: Detect begin, 2 packages 

[0CB8:067C][2014-06-23T11:10:05]i000: Setting string variable 'PrerequisitesVersion' to value '1.0.0.0' 

[0CB8:067C][2014-06-23T11:10:05]i102: Detected related bundle: {8d398d25-606f-419a-9b29-e3434aeb2485}, type: Upgrade, scope: PerUser, version: 8.1.241.0, operation: Downgrade 

[0CB8:067C][2014-06-23T11:10:05]i103: Detected related package: {7EA877FF-CE7A-49CE-8F76-D5A11EA7DD7A}, scope: PerMachine, version: 1.0.0.0, language: 0 operation: MajorUpgrade 

[0CB8:067C][2014-06-23T11:10:05]i103: Detected related package: {8E8A7689-FB1C-4FE5-AF7C-95D499A342DE}, scope: PerUser, version: 8.1.241.0, language: 0 operation: MajorUpgrade 

[0CB8:067C][2014-06-23T11:10:05]i101: Detected package: PrerequisitesMsi, state: Absent, cached: None 

[0CB8:067C][2014-06-23T11:10:05]i101: Detected package: ClientMsi, state: Absent, cached: None 

[0CB8:067C][2014-06-23T11:10:05]i199:Detect complete, result: 0x0 

[0CB8:076C][2014-06-23T11:10:16]i000: Setting numeric variable 'EulaAcceptCheckbox' to value 0 

[0CB8:076C][2014-06-23T11:10:16]e000: Error 0x80070666: Cannot install a product when a newer version is installed. 
+0

Vậy điều gì sẽ xảy ra khi bạn chạy trình cài đặt ghi exe cũ? Lý tưởng nhất là xử lý các bản nâng cấp ở mức ghi và mức MSI. Vì vậy, nếu MSI được thiết lập để làm hạ cấp, nó sẽ xảy ra. Nếu nó không xảy ra, bạn có thể vui lòng dán các bản ghi cài đặt/gỡ cài đặt ghi không? – Isaiah4110

+0

Bạn nói "hạ cấp từ bản beta trở lại bản phát hành ổn định". Chúng tôi xử lý bản phát hành ổn định như là bản nâng cấp từ bản phát hành beta. ví dụ. Beta 1.2.3.1234 được người dùng nhìn thấy là "1.2.3.1234". Bản phát hành sau đây là 1.2.3.1235 nhưng người dùng nhìn thấy, ví dụ: "1.2". Số phiên bản được Wix sử dụng có thể khác với phiên bản mà người dùng đã xem. ví dụ. phiên bản thông tin. –

Trả lời

0

Cố gắng thêm <Property Id="REINSTALLMODE" Value="amus" /> trong tập tin product.wxs của bạn. Thuộc tính REINSTALLMODE là một tập hợp các thiết lập xác định hành vi của cài đặt mới với phiên bản khác nhau/giống nhau. Để biết thêm chi tiết, bạn có thể kiểm tra REINSTALLMODE property làm tài liệu tham khảo.

+1

Đã cố gắng thêm thuộc tính này, nhưng nó vẫn không cho phép tôi hạ cấp phiên bản. Xem câu trả lời của tôi cho một cái gì đó đã làm việc cho tôi. – Contango

+0

+1. Chắc chắn sẽ là một giải pháp tốt hơn. Nhưng điều này làm việc cho tôi khi tôi kích hoạt msi để viết lại tất cả các đăng ký và sao chép oll các tập tin một lần nữa bằng cách thiết lập tài sản này. Hãy thử các giải pháp được cung cấp bởi bạn. Tôi sẽ thêm vào các bình luận nếu nó phù hợp với tôi. – Durgesh

0

Hãy coi betas là bản phát hành dẫn đến bản phát hành ổn định (RC hoặc thị trường). Phiên bản tập tin/lắp ráp luôn luôn di chuyển lên, vì vậy cài đặt là bản nâng cấp.

Hãy chuỗi này phát hành:

  • 1.2.3.4567 Beta
  • 1.2.3.4568 phát hành thị trường
  • 1.2.4.4569 Beta Tiếp

Xác định phiên bản mà khách hàng thấy tùy nếu thị trường phát hành (ổn định) hoặc beta.

Kiểm tra 'AssemblyInformationalVersion'.

[assembly: AssemblyVersion("1.0.0.1234")] 
[assembly: AssemblyFileVersion("1.0.0.1234")] 
[assembly: AssemblyInformationalVersion("1.0")] 

Luôn nâng cấp.

+1

Có và đó chính xác là cách hoạt động của nó. Vấn đề là, khi 1.2.4.4569 có lỗ hổng và mọi người muốn khôi phục 1.2.3.4568, họ không thể chạy trình cài đặt cũ hơn. Với msi, họ có thể làm điều đó và nó sẽ hoạt động thành công. –

+0

Quay lại bản beta hoặc quay lại bản phát hành trước khi phát hành? Quay trở lại phiên bản beta nên yêu cầu gỡ cài đặt/cài đặt lại, các vấn đề lớn hơn khi phát. Trước khi phát hành thị trường nên tăng số phiên bản chính để cho phép cài đặt nhiều phiên bản độc lập ... nhưng điều đó cũng yêu cầu ứng dụng của bạn sử dụng các thư mục dữ liệu ứng dụng riêng biệt, v.v. –

+0

Tôi không nghĩ ý tưởng của bạn về cách phần mềm được triển khai hình vuông với tôi. Chúng tôi phát hành phần mềm beta mỗi 3-4 tuần và phát hành chính thức cứ sau 4-6 tháng. Đây không phải là sửa đổi lớn, nó sẽ là không hợp lý để có chúng cài đặt song song. Chúng được nâng cấp. Quay trở lại từ một phiên bản beta mới trong tuần này, đến tháng trước, có thể phát hành chính thức thông qua MSI, nhưng không phải thông qua ghi đĩa. MSI thực hiện gỡ cài đặt và sau đó đặt phiên bản mới xuống. Nó hoạt động hoàn hảo trước khi chúng tôi thay đổi để đốt cháy. Burn làm một số điều tốt đẹp khác, nó chỉ sucks rằng nó không xử lý này. –

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