Hi,

I am pretty new to the world of WiX but have found it to be a very useful tool. 
I am having the following issue however and after 2 days of googling it is 
driving me nuts.

I have a bootstrapper that install .net 4.0 if required and then installs my 
msipackage.

I opted for the major upgrade everytime when making changes to the files 
installed.  Each of my executable files have their version number updated to 
the current revision number in SVN.  When I install my application the first 
time it installs fine and all the services are started and installed and all 
the required files are there.  When I run the next version of the installer (so 
a major upgrade) it seems to be installing the new msi and then uninstalling 
the old one. At this point all that is left on my machine is the service 
executables and nothing else, all the other files have been removed including 
the .exe.config files rendering the application useless.  Any ideas what I am 
doing wrong, its driving me crazy!!!

Here is my bundle.wxs
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
  <Bundle Name="Document Converters" Version="$(var.Version)" 
Manufacturer="company name" UpgradeCode="UPGRADE-GUID" Condition="((VersionNT 
>= v5.1) AND (ServicePackLevel >= 3)) OR ((VersionNT >= v5.2) AND 
(ServicePackLevel >= 2)) OR (VersionNT >= v6.0)">
    <BootstrapperApplicationRef 
Id="WixStandardBootstrapperApplication.HyperlinkLicense" />
    <WixVariable Id="WixStdbaLogo" Value="Resource\logo.png" />
    <WixVariable Id="WixStdbaLicenseUrl" Value="" />
    <Variable Name="InstallFolder" Type="string" Value="[WindowsVolume]company 
name\application" />
    <Variable Name="LaunchTarget" Value="[InstallFolder]\application.exe"/>

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

      <RollbackBoundary />

      <MsiPackage
        Id="WIXConverterInstaller"
        Compressed="yes"
        SourceFile="$(var.WIXConverterInstaller.TargetPath)"
        Vital="yes">
        <MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
      </MsiPackage>
    </Chain>
  </Bundle>
</Wix>

Here is my bootstrapper project file.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>3.7</ProductVersion>
    <ProjectGuid>{7ae67f4b-d014-4008-9373-35cb5aeffb36}</ProjectGuid>
    <SchemaVersion>2.0</SchemaVersion>
    <OutputName>DocumentConverterInstallerV2.8-B$(BuildNo)</OutputName>
    <OutputType>Bundle</OutputType>
    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND 
'$(MSBuildExtensionsPath32)' != '' 
">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' 
">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
    <Name>DocumentConverterInstaller</Name>
    <Version>
    </Version>
    <BuildNo Condition=" '$(BuildNo)' == ''">1</BuildNo>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <OutputPath>bin\$(Configuration)\</OutputPath>
    <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
    <DefineConstants>Debug</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <OutputPath>bin\$(Configuration)\</OutputPath>
    <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Bundle.wxs" />
  </ItemGroup>
  <ItemGroup>
    <WixExtension Include="WixUtilExtension">
      <HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
      <Name>WixUtilExtension</Name>
    </WixExtension>
    <WixExtension Include="WixNetFxExtension">
      <HintPath>$(WixExtDir)\WixNetFxExtension.dll</HintPath>
      <Name>WixNetFxExtension</Name>
    </WixExtension>
    <WixExtension Include="WixBalExtension">
      <HintPath>$(WixExtDir)\WixBalExtension.dll</HintPath>
      <Name>WixBalExtension</Name>
    </WixExtension>
  </ItemGroup>
  <ItemGroup>
    <ProjectReference 
Include="..\WIXConverterInstaller\WIXConverterInstaller.wixproj">
      <Name>WIXConverterInstaller</Name>
      <Project>{a4305231-d2e0-4e1c-9516-a252cd697195}</Project>
      <Private>True</Private>
      <DoNotHarvest>True</DoNotHarvest>
      
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
      <RefTargetDir>INSTALLFOLDER</RefTargetDir>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Resource" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="Resource\logo.png" />
  </ItemGroup>
  <Import Project="$(WixTargetsPath)" />
  <Target Name="BeforeBuild">
    <PropertyGroup>
      <DefineConstants>Version=2.8.$(BuildNo).0</DefineConstants>
    </PropertyGroup>
  </Target>
  <!--
       <Target Name="BeforeBuild">
       </Target>
  <Target Name="AfterBuild">
       </Target>
       -->
</Project>

Here is my product.wxs (there is also and appfiles.wxs which is autogenerated 
by heat and referenced in the product.wxs)

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
       <Product Id="*" Name="Document Converters" Language="1033" 
Version="$(var.Version)" Manufacturer="OmPrompt" 
UpgradeCode="C50A2027-E77A-43AE-B891-7F0B7FB6389F">
             <Package Id="*" InstallerVersion="301" Compressed="yes" 
InstallScope="perMachine" Keywords="Installer" Description="Document Converter 
installer" />

             <MajorUpgrade Schedule='afterInstallInitialize' 
DowngradeErrorMessage="A newer version of [ProductName] is already installed. 
Setup will now exit." />
             <MediaTemplate EmbedCab="yes" />

    <Feature Id="ProductFeature" Title="WIXConverterInstaller" Level="1">
                    <ComponentGroupRef Id="ServicesExecutables" />
      <ComponentGroupRef Id="AppFiles" />
      <ComponentRef Id="ApplicationShortcutDesktop"/>
      <ComponentRef Id="AppMenuShortcutComponent" />
             </Feature>
       </Product>

       <Fragment>
             <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="DesktopFolder" Name="Desktop">
        <Component Id="ApplicationShortcutDesktop" 
Guid="814088EA-67DE-4204-BA61-4468834A6514">
          <Shortcut Id="ApplicationDesktopShortcut"
             Name="Converter Controller"
             Description="Starts the converter controller application"
             Target="[INSTALLFOLDER]ConverterController.exe"
             WorkingDirectory="INSTALLFOLDER"/>
          <RemoveFolder Id="DesktopFolder" On="uninstall"/>
          <RegistryValue
            Root="HKCU"
            Key="Software/OmPrompt/DocumentConverters"
            Name="installed"
            Type="integer"
            Value="1"
            KeyPath="yes"/>
        </Component>
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ShortcutFolder"
                   Name="Document Converters">
          <Component Id="AppMenuShortcutComponent" 
Guid="CF36B368-D225-40A4-8AA0-A6248DE86029">
            <RegistryValue Name="installed"
                          Type="integer"
                          Value="1"
                          KeyPath="yes"
                          Root="HKCU"
                          
Key="Software/OmPrompt/DocumentConverters/menushortcut"/>

            <Shortcut Id="AppMenuShortcut"
                         Name="Converter Controller"
                         Description="Starts the converter controller 
application"
                         Target="[INSTALLFOLDER]ConverterController.exe"
                         WorkingDirectory="INSTALLFOLDER"/>

            <RemoveFolder Id="RemoveShorcutFolder"
                          On="uninstall" />
          </Component>
        </Directory>
      </Directory>
      <Directory Id="INSTALLFOLDER" Name="Document Converters" />
    </Directory>
       </Fragment>

       <Fragment>
             <ComponentGroup Id="ServicesExecutables" Directory="INSTALLFOLDER">
      <Component Id="OmpMessageServerService" 
Guid="{68C84145-94FD-4150-823A-E24BF4B24565}">
        <CreateFolder />
        <File Id="OmpMessageServerExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpMessageServer.exe" />
        <ServiceInstall Id="OmpMessageServerServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpMessageServerService"
          DisplayName="OmpMessageServer"
          Description="Service to control the message flows between 
ConverterController and the converters."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpMessageServerService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpMessageServerService"
          Wait="yes" />
      </Component>
      <Component Id="OmpCSVtoDOCService" 
Guid="{B3036364-D4B0-406F-8D75-B2C932589C5E}">
        <CreateFolder />
        <File Id="OmpCSVtoDOCExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpCSVtoDOC.exe" />
        <ServiceInstall Id="OmpCSVtoDOCServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpCSVtoDOCService"
          DisplayName="OmpCSVtoDOC"
          Description="The CSV to DOC Converter."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpCSVtoDOCService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpCSVtoDOCService"
          Wait="yes" />
      </Component>
      <Component Id="OmpCSVtoXLSService" 
Guid="{F7F435DA-413B-474A-B1AB-9D662E5F6E6B}">
        <CreateFolder />
        <File Id="OmpCSVtoXLSExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpCSVtoXLS.exe" />
        <ServiceInstall Id="OmpCSVtoXLSServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpCSVtoXLSService"
          DisplayName="OmpCSVtoXLS"
          Description="The CSV to XLS converter."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpCSVtoXLSService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpCSVtoXLSService"
          Wait="yes" />
      </Component>
      <Component Id="OmpDOCtoTXTService" 
Guid="{F5F87BF3-0F29-40F2-A135-E77AEC887CE6}">
        <CreateFolder />
        <File Id="OmpDOCtoTXTExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpDOCtoTXT.exe" />
        <ServiceInstall Id="OmpDOCtoTXTServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpDOCtoTXTService"
          DisplayName="OmpDOCtoTXT"
          Description="The DOC to TXT converter."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpDOCtoTXTService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpDOCtoTXTService"
          Wait="yes" />
      </Component>
      <Component Id="OmpPDFtoTXTService" 
Guid="{4A41D81B-19EA-4646-A926-EB4037CB080B}">
        <CreateFolder />
        <File Id="OmpPDFtoTXTExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpPDFtoTXT.exe" />
        <ServiceInstall Id="OmpPDFtoTXTServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpPDFtoTXTService"
          DisplayName="OmpPDFtoTXT"
          Description="The PDF to TXT converter."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpPDFtoTXTService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpPDFtoTXTService"
          Wait="yes" />
      </Component>
      <Component Id="OmpPrintService" 
Guid="{BAA3F918-4F3D-49F4-9DB3-D5547E5E29F1}">
        <CreateFolder />
        <File Id="OmpPrintExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpPrint.exe" />
        <ServiceInstall Id="OmpPrintServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpPrintService"
          DisplayName="OmpPrint"
          Description="The print converter."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpPrintService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpPrintService"
          Wait="yes" />
      </Component>
      <Component Id="OmpXLStoCSVService" 
Guid="{AA0CC97B-3A3C-4A8A-A132-348BC8AE474A}">
        <CreateFolder />
        <File Id="OmpXLStoCSVExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpXLStoCSV.exe" />
        <ServiceInstall Id="OmpXLStoCSVServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpXLStoCSVService"
          DisplayName="OmpXLStoCSV"
          Description="The XLS to CSV converter."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpXLStoCSVService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpXLStoCSVService"
          Wait="yes" />
      </Component>
      <Component Id="OmpXMLtoPDFService" 
Guid="{AE5B5080-C149-4C6C-BCE5-AC4A8283D0BA}">
        <CreateFolder />
        <File Id="OmpXMLtoPDFExecutable" KeyPath="yes"
          Source="$(var.BasePath)\OmpXMLtoPDF.exe" />
        <ServiceInstall Id="OmpXMLtoPDFServiceInstaller"
          Type="ownProcess"
          Vital="yes"
          Name="OmpXMLtoPDFService"
          DisplayName="OmpXMLtoPDF"
          Description="The XML to PDF converter."
          Start="auto"
          Account="LocalSystem"
          ErrorControl="ignore"
          Interactive="yes" />
        <ServiceControl Id="StartOmpXMLtoPDFService"
          Start="install"
          Stop="both"
          Remove="uninstall"
          Name="OmpXMLtoPDFService"
          Wait="yes" />
      </Component>
    </ComponentGroup>
       </Fragment>
</Wix>

Here is my application WiX project

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>3.7</ProductVersion>
    <ProjectGuid>{a4305231-d2e0-4e1c-9516-a252cd697195}</ProjectGuid>
    <SchemaVersion>2.0</SchemaVersion>
    <OutputName>WIXConverterInstaller</OutputName>
    <OutputType>Package</OutputType>
    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND 
'$(MSBuildExtensionsPath32)' != '' 
">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' 
">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
    <SccProjectName>Svn</SccProjectName>
    <SccProvider>SubversionScc</SccProvider>
    <SccAuxPath>Svn</SccAuxPath>
    <SccLocalPath>Svn</SccLocalPath>
    <Version>
    </Version>
    <BuildNo Condition=" '$(BuildNo)' == ''">1</BuildNo>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <OutputPath>bin\$(Configuration)\</OutputPath>
    <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
    <DefineConstants>Debug</DefineConstants>
    <WixVariables>
    </WixVariables>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <OutputPath>bin\$(Configuration)\</OutputPath>
    <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Product.wxs" />
    <Compile Include="AppFiles.wxs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="AppFilesTransform.xslt" />
  </ItemGroup>
  <Import Project="$(WixTargetsPath)" />
  <Target Name="BeforeBuild">
    <PropertyGroup>
      
<DefineConstants>BasePath=$(SolutionDir)BuildFiles\;Version=2.8.$(BuildNo).0</DefineConstants>
    </PropertyGroup>
    <HeatDirectory OutputFile="AppFiles-temp.xml" 
Directory="$(SolutionDir)BuildFiles\" DirectoryRefId="INSTALLFOLDER" 
ComponentGroupName="AppFiles" SuppressCom="true" SuppressFragments="true" 
SuppressRegistry="true" SuppressRootDirectory="true" AutoGenerateGuids="false" 
GenerateGuidsNow="true" ToolPath="$(WixToolPath)" 
PreprocessorVariable="var.BasePath" />
    <XslTransformation XmlInputPaths="AppFiles-temp.xml" 
XslInputPath="AppFilesTransform.xslt" OutputPaths="AppFiles.wxs" />
  </Target>
  <Target Name="AfterBuild">
  </Target>
  <PropertyGroup>
    <PreBuildEvent />
  </PropertyGroup>
</Project>

I use a transform on the heat generated file to remove my service executables 
as they are defined in the product.wxs

If anyone can help me resolve this I will be eternally grateful, if you need to 
see logs from the upgrade install just let me know.

Thanks in advance

Dave Moss

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to