Stuck on preserving config file in WIX major upgrade!

Posted by Joshua on Stack Overflow See other posts from Stack Overflow or by Joshua
Published on 2010-05-04T20:22:26Z Indexed on 2010/05/04 22:08 UTC
Read the original article Hit count: 445

Filed under:
|
|

ARGH! Wix is driving me crazy.

So, of course I have seen the many posts both here on stackoverflow and elsewhere about WiX and major upgrades. I inherited this software project using WiX and am releasing a new version. I need this new version to leave ONLY the one configuration file if it's present, and replace everything else. This installer works EXCEPT no matter what I have done so far, the new XML file replaces the old on every install. Even attempting to use NeverOverwrite="yes" and even trying and messing back and forth with OnlyDetect="no"! I am simply stuck and humbly request a little guidance. The file that needs to be preserved is called SETTINGS.XML and is in the All Users->ApplicationData directory. Here is (most of) my .wxs file!

    <Package Id='$(var.PackageCode)'
             Description="Pathways Directory Software"
             InstallerVersion="301"
             Compressed="yes" />

    <WixVariable Id="WixUILicenseRtf" Value="License.rtf" />
    <Media Id="1" Cabinet="Pathways.cab" EmbedCab="yes" />

    <Upgrade Id="$(var.UpgradeCode)">
        <UpgradeVersion
            OnlyDetect="no"  
            Maximum="$(var.ProductVersion)"
            IncludeMaximum="no"
            Language="1033"
            Property="OLDAPPFOUND"
        />
        <UpgradeVersion
            Minimum="$(var.ProductVersion)"
            IncludeMinimum="yes"
            OnlyDetect="no"
            Language="1033"
            Property="NEWAPPFOUND"
        />
    </Upgrade>

        <!-- program files directory -->
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLDIR" Name="Pathways"/>
        </Directory>

        <!-- application data directory -->
        <Directory Id="CommonAppDataFolder" Name="CommonAppData">
            <Directory Id="CommonAppDataPathways" Name="Pathways" />
        </Directory>

        <!-- start menu program directory -->
        <Directory Id="ProgramMenuFolder">
            <Directory Id="ProgramsMenuPathwaysFolder" Name="Pathways" />
        </Directory>

        <!-- desktop directory -->
        <Directory Id="DesktopFolder" />

    </Directory>

    <Icon Id="PathwaysIcon" SourceFile="\\Fileserver\Release\Pathways\Latest\Release\Pathways.exe" />

    <!-- components in the reference to the install directory -->
    <DirectoryRef Id="INSTALLDIR">
        <Component Id="Application" Guid="EEE4EB55-A515-4872-A4A5-06D6AB4A06A6">
            <File Id="pathwaysExe" Name="Pathways.exe" DiskId="1" Source="\\Fileserver\Release\Pathways\Latest\Release\Pathways.exe" Vital="yes" KeyPath="yes" Assembly=".net" AssemblyApplication="pathwaysExe" AssemblyManifest="pathwaysExe">
                <!--<netfx:NativeImage Id="ngen_Pathways.exe" Platform="32bit" Priority="2"/> -->
            </File>

            <File Id="pathwaysChm" Name="Pathways.chm" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Pathways.chm" />

            <File Id="publicKeyXml" ShortName="RSAPUBLI.XML" Name="RSAPublicKey.xml" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\RSAPublicKey.xml" Vital="yes" />
            <File Id="staticListsXml" ShortName="STATICLI.XML" Name="StaticLists.xml" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\StaticLists.xml" Vital="yes" />

            <File Id="axInteropMapPointDll" ShortName="AXMPOINT.DLL" Name="AxInterop.MapPoint.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\AxInterop.MapPoint.dll" Vital="yes" />
            <File Id="interopMapPointDll" ShortName="INMPOINT.DLL" Name="Interop.MapPoint.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Interop.MapPoint.dll" Vital="yes" />
            <File Id="mapPointDll" ShortName="MAPPOINT.DLL" Name="MapPoint.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Interop.MapPoint.dll" Vital="yes" />

            <File Id="devExpressData63Dll" ShortName="DAAT63.DLL" Name="DevExpress.Data.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.Data.v6.3.dll" Vital="yes" />
            <File Id="devExpressUtils63Dll" ShortName="UTILS63.DLL" Name="DevExpress.Utils.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.Utils.v6.3.dll" Vital="yes" />
            <File Id="devExpressXtraBars63Dll" ShortName="BARS63.DLL" Name="DevExpress.XtraBars.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.XtraBars.v6.3.dll" Vital="yes" />
            <File Id="devExpressXtraNavBar63Dll" ShortName="NAVBAR63.DLL" Name="DevExpress.XtraNavBar.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.XtraNavBar.v6.3.dll" Vital="yes" />
            <File Id="devExpressXtraCharts63Dll" ShortName="CHARTS63.DLL" Name="DevExpress.XtraCharts.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.XtraCharts.v6.3.dll" Vital="yes" />
            <File Id="devExpressXtraEditors63Dll" ShortName="EDITOR63.DLL" Name="DevExpress.XtraEditors.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.XtraEditors.v6.3.dll" Vital="yes" />
            <File Id="devExpressXtraPrinting63Dll" ShortName="PRINT63.DLL" Name="DevExpress.XtraPrinting.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.XtraPrinting.v6.3.dll" Vital="yes" />
            <File Id="devExpressXtraReports63Dll" ShortName="REPORT63.DLL" Name="DevExpress.XtraReports.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.XtraReports.v6.3.dll" Vital="yes" />
            <File Id="devExpressXtraRichTextEdit63Dll" ShortName="RICHTE63.DLL" Name="DevExpress.XtraRichTextEdit.v6.3.dll" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\DevExpress.XtraRichTextEdit.v6.3.dll" Vital="yes" />

            <RegistryValue Id="PathwaysInstallDir" Root="HKLM" Key="Software\Tribal Data Resources\Pathways" Name="InstallDir" Action="write" Type="string" Value="[INSTALLDIR]" />
        </Component>

    </DirectoryRef>

    <!-- application data components -->
    <DirectoryRef Id="CommonAppDataPathways">

        <Component Id="CommonAppDataPathwaysFolderComponent" Guid="087C6F14-E87E-4B57-A7FA-C03FC8488E0D">
            <CreateFolder>
                <Permission User="Everyone" GenericAll="yes" />
            </CreateFolder>

            <RemoveFolder Id="CommonAppDataPathways" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\TDR\Pathways" Name="installed" Type="integer" Value="1" KeyPath="yes" />
            <File Id="settingsXml" ShortName="SETTINGS.XML" Name="Settings.xml" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Settings\settings.xml" Vital="yes" />
        </Component>

        <Component Id="Database" Guid="1D8756EF-FD6C-49BC-8400-299492E8C65D">
            <File Id="pathwaysMdf" Name="Pathways.mdf" DiskId="1" Source="\\fileserver\Shared\Databases\Pathways\SystemDBs\Pathways.mdf" />
            <RemoveFile Id="pathwaysLdf" ShortName="Pathways.ldf" Name="Pathways_log.LDF" On="uninstall" />
        </Component>

    </DirectoryRef>

    <!-- shortcut components -->
    <DirectoryRef Id="DesktopFolder">
        <Component Id="DesktopShortcutComponent" Guid="1BF412BA-9C6B-460D-80ED-8388AC66703F">
            <Shortcut Id="DesktopShortcut"
                      Target="[INSTALLDIR]Pathways.exe"
                      Name="Pathways"
                      Description="Pathways Tribal Directory"
                      Icon="PathwaysIcon"
                      Show="normal"
                      WorkingDirectory="INSTALLDIR" />
            <RegistryValue Root="HKCU" Key="Software\TDR\Pathways" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
        </Component>
    </DirectoryRef>

    <DirectoryRef Id ="ProgramsMenuPathwaysFolder">
        <Component Id="ProgramsMenuShortcutComponent" Guid="83A18245-4C22-4CDC-94E0-B480F80A407D">
            <Shortcut Id="ProgramsMenuShortcut" Target="[INSTALLDIR]Pathways.exe" Name="Pathways" Icon="PathwaysIcon" Show="normal" WorkingDirectory="INSTALLDIR" />
            <RemoveFolder Id="ProgramsMenuPathwaysFolder" On="uninstall"/>
            <RegistryValue Root="HKCU" Key="Software\TDR\Pathways" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
        </Component>
    </DirectoryRef>


    <Feature Id="App" Title="Pathways Application" Level="1" Description="Pathways software" Display="expand" ConfigurableDirectory="INSTALLDIR" Absent="disallow" AllowAdvertise="no" InstallDefault="local">
        <ComponentRef Id="Application" />
        <ComponentRef Id="CommonAppDataPathwaysFolderComponent" />
        <ComponentRef Id="ProgramsMenuShortcutComponent" />
        <Feature Id="Shortcuts" Title="Desktop Shortcut" Level="1" Absent="allow" AllowAdvertise="no" InstallDefault="local">
            <ComponentRef Id="DesktopShortcutComponent" />
        </Feature>
    </Feature>


    <Feature Id="Data" Title="Database" Level="1" Absent="allow" AllowAdvertise="no" InstallDefault="local">
        <ComponentRef Id="Database" />
    </Feature>

    <!-- <UIRef Id="WixUI_Minimal" /> -->
    <UIRef Id ="WixUI_FeatureTree"/>
    <UIRef Id="WixUI_ErrorProgressText"/>

    <UI>
        <Error Id="2000">There is a later version of this program installed.</Error>
    </UI>

    <CustomAction Id="NewerVersionDetected" Error="2000" />

    <InstallExecuteSequence>
        <RemoveExistingProducts After="InstallFinalize"/>
    </InstallExecuteSequence>

</Product>

© Stack Overflow or respective owner

Related posts about wix

Related posts about upgrade