2014-05-12 20 views
6

Mam więc dość prosty instalator nagrywarek, głównie w celu włączenia aktualizacji .net lub od czasu do czasu pakiet sterowników dla sprzętu, z którym nasza aplikacja musi rozmawiać.Wix Burn, w jaki sposób zezwolić na obniżenie oceny?

MSI, które tworzymy, wspierają ulepszanie lub obniżanie oceny.

<?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> 

Zazwyczaj mają wersje beta i gdy użytkownik chce przejść z powrotem do beta naszych stabilnych wydaniach nie mogą po prostu wykonać starą EXE instalatora. Muszą usunąć wcześniejszy pakiet z Dodaj/Usuń programy jawnie do instalatora starszego Burn EXE.

To nie był problem z instalacją opartą na MSI. Jak wrócimy do tej funkcjonalności?

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

Co się dzieje, gdy uruchamiasz stary instalator programu burn exe? Najlepiej wypalić ulepszenia uchwytów na poziomie spalania i na poziomie MSI. Jeśli więc MSI jest skonfigurowany do obniżania wydajności, powinno się to stać. Jeśli tak się nie dzieje, czy możesz wkleić dzienniki instalacji/deinstalacji nagrywania? – Isaiah4110

+0

Mówisz "obniżenie wersji z wersji beta do naszej stabilnej wersji". Traktujemy stabilną wersję jako aktualizację z wersji beta. na przykład Wersja beta 1.2.3.1234 jest postrzegana przez użytkownika jako "1.2.3.1234". Następująca wersja to 1.2.3.1235, ale jest postrzegana przez użytkownika jako, powiedzmy, "1.2". Numer wersji używany przez Wix może różnić się od wersji widocznej dla użytkownika. na przykład wersja informacyjna. –

Odpowiedz

0

Spróbuj dodać <Property Id="REINSTALLMODE" Value="amus" /> w pliku product.wxs. Właściwość REINSTALLMODE to zestaw ustawień, który definiuje zachowanie nowej instalacji w innej/tej samej wersji. Aby uzyskać więcej informacji, możesz sprawdzić REINSTALLMODE property jako odniesienie.

+1

Próbowałem dodać tę właściwość, ale nadal nie pozwalało mi ona zmienić wersji na starszą. Zobacz moją odpowiedź na coś, co zadziałało dla mnie. – Contango

+0

+1. Zdecydowanie wygląda na lepsze rozwiązanie. Ale ten działał dla mnie, ponieważ włączyłem msi, aby przepisać cały rejestr i skopiować pliki ponownie, ustawiając tę ​​właściwość. Wypróbuję rozwiązanie dostarczone przez Ciebie. Dodaję komentarze, jeśli to działa dla mnie. – Durgesh

0

Traktuj betas jako wydanie poprzedzające stabilne (RC lub rynkowe) wydania. Wersja pliku/złożenia zawsze przesuwa się w górę, więc instalacja jest aktualizacją.

Weź tę kolejność wydań:

  • 1.2.3.4567 Beta
  • 1.2.3.4568 uwolnienie rynku
  • 1.2.4.4569 Beta Następny

Określ wersję, że klient widzi zależności w przypadku wydania rynkowego (stabilnego) lub wersji beta.

Sprawdź "AssemblyInformationalVersion".

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

Zawsze ulepszaj.

+1

Tak i dokładnie tak działa. Problem polega na tym, że gdy 1.2.4.4569 ma wadę i ludzie chcą przywrócić do wersji 1.2.3.4568, nie mogą po prostu uruchomić starszego instalatora. Z msi mogą to zrobić i będzie działać poprawnie. –

+0

Powrót do wersji beta lub powrót do wcześniejszej wersji rynkowej? Powrót do wersji beta powinien wymagać odinstalowania/ponownej instalacji, większych problemów podczas gry. Wcześniejsze wydanie rynkowe powinno zwiększyć główny numer wersji, aby umożliwić niezależne instalacje wielu wersji ... ale to też wymaga, aby aplikacja korzystała z oddzielnych folderów danych aplikacji itp. –

+0

Nie sądzę, że masz pomysł na to, w jaki sposób oprogramowanie jest rozmieszczane z moimi kopiami. Wydajemy oprogramowanie beta co 3-4 tygodnie i oficjalną wersję co 4-6 miesięcy. Nie są to istotne zmiany, nie byłoby sensowne ich instalowanie obok siebie. Są one na miejscu ulepszeń. Wracając z nowego w tym tygodniu beta, do ostatnich miesięcy oficjalne wydanie jest możliwe za pośrednictwem MSI, ale nie przez oparzenie. MSI odinstalowuje, a następnie ustanawia nową wersję. Sprawdził się doskonale, zanim zmieniliśmy się na spalenie. Burn robi kilka innych fajnych rzeczy, po prostu jest do bani, że tego nie obsługuje. –

Powiązane problemy