none
Crystal Report Basic for VS2008 64 bit installs again and again from Setup.exe

    Question

  • Hi to all,

    We are using Crystal reports in our windows application in .net 3.5 application using VS2008 Professional Edition.

    Also created Setup.exe with having prerequisite to install both 32bit and 64 bit Crystal Report Basic VS2008 on 64 bit machine.

    After making the 32 bit installer when we are executing the setup for the first time, it is working fine on 64 bit as asking user to install crystal report for x86 and x64 installation.

    But after successful installation when we again executes the set up, its again prompting to install crystal report run time though crystal report VS2008 for x86 and x64 are already installed.

    The above scenario is working fine for 32 bit machine.

    Can any one suggest what condition needs to be added in the product.xml (Boots trapper) to bypass the install process if already installed.

    Thank you so much for reading my question. Any help is greatly appreciated!!

    Waiting for reply..

    Thanks,

    -Smarajit

    Friday, May 18, 2012 4:41 AM

All replies

  • it must be looks like something :

    <?xml version="1.0" encoding="utf-8" ?>
    
    <Product
      xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
      ProductCode="BusinessObjects.CrystalReports.10.5"
    >
      <!-- Defines list of files to be copied on build -->
      <PackageFiles CopyAllPackageFiles="false">
        <PackageFile Name="CRRedist2008_x86.msi" HomeSite="http://resources.businessobjects.com/support/downloads/redistributables/vs_2008/redist/x86/CRRedist2008_x86.msi" PublicKey="3082010a0282010100fa82e561d38f1b5af3f6109a917dd80e4ce660a0eee8191aece4f9d9ca5d4e9eb7f87f734047bd0386376d9bb1625eb25c31e594fceea535ab559373c3fb4158102c6e9b2f4c6cb64588e0e9ee2ad7b951fcbfdaa773cf360b640f4cf35d14f6a532139a6bd4f3eb809e28fe3f263c1ebed8bab50647e59298272f9b7ec68bb962878b60046989cdb3ca7c641256fa9e5419f35510b08fce32e27fd41d4313efc59aeca8016f8d4334cd4d93e019feed172b4a5aed4a4b9369b7658607f3f21be5e14accfdd5b3eb2faab2ac8156587170a142c32a5940a2350ff01907b120db65ae2901e13f3a4ea887d83fd92e0505199cf6da4b58e8188a812cd0d30ad56d0203010001" />
        <PackageFile Name="CRRedist2008_x64.msi" HomeSite="http://resources.businessobjects.com/support/downloads/redistributables/vs_2008/redist/x64/CRRedist2008_x64.msi" PublicKey="3082010a0282010100fa82e561d38f1b5af3f6109a917dd80e4ce660a0eee8191aece4f9d9ca5d4e9eb7f87f734047bd0386376d9bb1625eb25c31e594fceea535ab559373c3fb4158102c6e9b2f4c6cb64588e0e9ee2ad7b951fcbfdaa773cf360b640f4cf35d14f6a532139a6bd4f3eb809e28fe3f263c1ebed8bab50647e59298272f9b7ec68bb962878b60046989cdb3ca7c641256fa9e5419f35510b08fce32e27fd41d4313efc59aeca8016f8d4334cd4d93e019feed172b4a5aed4a4b9369b7658607f3f21be5e14accfdd5b3eb2faab2ac8156587170a142c32a5940a2350ff01907b120db65ae2901e13f3a4ea887d83fd92e0505199cf6da4b58e8188a812cd0d30ad56d0203010001" />
      </PackageFiles>
    
      <RelatedProducts>
        <DependsOnProduct Code="Microsoft.Net.Framework.2.0" />
      </RelatedProducts>
    
      <InstallChecks>
        <MsiProductCheck Property="CRVSInstalled" Product="{AA467959-A1D6-4F45-90CD-11DC57733F32}"/>
        <MsiProductCheck Property="CRVSRunTimex86Installed" Product="{CE26F10F-C80F-4377-908B-1B7882AE2CE3}"/>
        <MsiProductCheck Property="CRVSRunTimex64Installed" Product="{2BFA9B05-7418-4EDE-A6FC-620427BAAAA3}. "/>
      </InstallChecks>
    
      <Commands Reboot="Defer">
        <Command PackageFile="CRRedist2008_x86.msi"
    	     Arguments='/norestart'
    	     EstimatedInstalledBytes="21000000"
    	     EstimatedInstallSeconds="300">
    
          <!-- These checks determine whether the package is to be installed -->
    
          <InstallConditions>
            <!-- ByPass if the Processor is not x86 -->
            <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/>
    
            <!-- ByPass if we have installed CRVS -->
            <BypassIf Property="CRVSInstalled" Compare="ValueGreaterThan" Value="0" />
    
            <!-- ByPass if we have installed the x86 redist -->
            <BypassIf Property="CRVSRunTimex86Installed" Compare="ValueGreaterThan" Value="0" />
    
            <!-- Block install if user does not have admin privileges -->
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
    
            <!-- Block install on Win95 -->
            <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
    
            <!-- Block install on NT 4 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>
    
          </InstallConditions>
    
          <ExitCodes>
            <ExitCode Value="0" Result="Success"/>
            <ExitCode Value="1641" Result="SuccessReboot"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
    
        <Command PackageFile="CRRedist2008_x64.msi"
    	     Arguments='/norestart'
    	     EstimatedInstalledBytes="21000000"
    	     EstimatedInstallSeconds="300">
    
          <!-- These checks determine whether the package is to be installed -->
    
          <InstallConditions>
            <!-- ByPass if the Processor is not x64 -->
            <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="AMD64"/>
    
            <!-- ByPass if we have installed the x64 redist -->
            <BypassIf Property="CRVSRunTimex64Installed" Compare="ValueGreaterThan" Value="0" />
    
    
            <!-- Block install if user does not have admin privileges -->
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
    
            <!-- Block install on Win95 -->
            <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
    
            <!-- Block install on NT 4 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>
    
          </InstallConditions>
    
          <ExitCodes>
            <ExitCode Value="0" Result="Success"/>
            <ExitCode Value="1641" Result="SuccessReboot"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
    
      </Commands>
    </Product>
    


    Best Regards Sanjay Pant [Metadesign Solutions]

    Friday, May 18, 2012 9:22 AM
  • Hi Sanjay,

    Thanks for your reply.

    We have used the same condition as it is provided by default in Boots trapper package product.xml file.

    But the problem is in the 64 bit install condition where the EULA license screen pops up again and again, though it is already installed on that machine.

    Can you suggest some other condition to be checked on the 64 bit install conditions tag.

    Waiting for the reply!!!

    Thanks,

    -Smarajit

    Monday, May 21, 2012 5:44 AM
  • I think it's because of property: 

    "ProcessorArchitecture"
    <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="AMD64"/>

    This is looking for AMD64 and you might be having Intel64 

    ProcessorArchitecture can be set to one of the following: "Intel", "IA64", "AMD64", "Mips", "Alpha", "PPC", "Unknown"

    http://msdn.microsoft.com/en-us/library/system.reflection.processorarchitecture.aspx

    check this Similar thread:

    http://social.msdn.microsoft.com/Forums/zh/winformssetup/thread/50b0480b-089b-47ab-82dc-ac14053f73e6


    Best Regards Sanjay Pant [Metadesign Solutions]

    Monday, May 21, 2012 11:37 AM
  • Hi Smarajit,

    How is it going with Sanjay's suggestion.

    I don't have a Crystal Report and I'm not sure what's the condition to check if a Crystal Report has been installed but I suggest you do the following things.

    Check if this is called by different version of the bootstrapper. Sometime, the Product Code will be change. Here is a similar situation, see http://social.msdn.microsoft.com/Forums/pl-PL/winformssetup/thread/380eafba-03a7-4946-924a-d078e393b42b 

    Check if it meet each Install conditions.

    Best Regards,


    Bob Wu [MSFT]
    MSDN Community Support | Feedback to us

    Wednesday, May 23, 2012 9:56 AM
    Moderator
  • Hi Smarajit,

    Any update to this issue?

    Would you mind create a install log for the installation and post it here.

    You can create the log by using the following command.

    msiexec /i <msi path> /L*v <log path>
    For more details, see 
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx.

    Best Regards,


    Bob Wu [MSFT]
    MSDN Community Support | Feedback to us

    Thursday, May 24, 2012 9:57 AM
    Moderator
  • Hi Sanjay,

    Thanks for your reply. We have used the property as below:

            <!-- ByPass if the Processor is not x64 -->
            <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="AMD64"/>

    Also find the whole "product.xml" properties used in out project setup below:

    <?xml version="1.0" encoding="utf-8" ?>
    
    <Product
      xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
      ProductCode="BusinessObjects.CrystalReports.10.5"
    >
      <!-- Defines list of files to be copied on build -->
      <PackageFiles CopyAllPackageFiles="false">
        <PackageFile Name="CRRedist2008_x86.msi" HomeSite="http://resources.businessobjects.com/support/downloads/redistributables/vs_2008/redist/x86/CRRedist2008_x86.msi" PublicKey="3082010a0282010100fa82e561d38f1b5af3f6109a917dd80e4ce660a0eee8191aece4f9d9ca5d4e9eb7f87f734047bd0386376d9bb1625eb25c31e594fceea535ab559373c3fb4158102c6e9b2f4c6cb64588e0e9ee2ad7b951fcbfdaa773cf360b640f4cf35d14f6a532139a6bd4f3eb809e28fe3f263c1ebed8bab50647e59298272f9b7ec68bb962878b60046989cdb3ca7c641256fa9e5419f35510b08fce32e27fd41d4313efc59aeca8016f8d4334cd4d93e019feed172b4a5aed4a4b9369b7658607f3f21be5e14accfdd5b3eb2faab2ac8156587170a142c32a5940a2350ff01907b120db65ae2901e13f3a4ea887d83fd92e0505199cf6da4b58e8188a812cd0d30ad56d0203010001" />
        <PackageFile Name="CRRedist2008_x64.msi" HomeSite="http://resources.businessobjects.com/support/downloads/redistributables/vs_2008/redist/x64/CRRedist2008_x64.msi" PublicKey="3082010a0282010100fa82e561d38f1b5af3f6109a917dd80e4ce660a0eee8191aece4f9d9ca5d4e9eb7f87f734047bd0386376d9bb1625eb25c31e594fceea535ab559373c3fb4158102c6e9b2f4c6cb64588e0e9ee2ad7b951fcbfdaa773cf360b640f4cf35d14f6a532139a6bd4f3eb809e28fe3f263c1ebed8bab50647e59298272f9b7ec68bb962878b60046989cdb3ca7c641256fa9e5419f35510b08fce32e27fd41d4313efc59aeca8016f8d4334cd4d93e019feed172b4a5aed4a4b9369b7658607f3f21be5e14accfdd5b3eb2faab2ac8156587170a142c32a5940a2350ff01907b120db65ae2901e13f3a4ea887d83fd92e0505199cf6da4b58e8188a812cd0d30ad56d0203010001" />
      </PackageFiles>
    
      <RelatedProducts>
        <DependsOnProduct Code="Microsoft.Net.Framework.2.0" />
      </RelatedProducts>
    
      <InstallChecks>
        <MsiProductCheck Property="CRVSInstalled" Product="{AA467959-A1D6-4F45-90CD-11DC57733F32}"/>
        <MsiProductCheck Property="CRVSRunTimex86Installed" Product="{CE26F10F-C80F-4377-908B-1B7882AE2CE3}"/>
        <MsiProductCheck Property="CRVSRunTimex64Installed" Product="{2BFA9B05-7418-4EDE-A6FC-620427BAAAA3}. "/>
      </InstallChecks>
    
      <Commands Reboot="Defer">
        <Command PackageFile="CRRedist2008_x86.msi"
    	     Arguments='/norestart'
    	     EstimatedInstalledBytes="21000000"
    	     EstimatedInstallSeconds="300">
    
          <!-- These checks determine whether the package is to be installed -->
    
          <InstallConditions>
            <!-- ByPass if the Processor is not x86 -->
            <!--<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/>-->
    
            <!-- ByPass if we have installed CRVS -->
            <BypassIf Property="CRVSInstalled" Compare="ValueGreaterThan" Value="0" />
    
            <!-- ByPass if we have installed the x86 redist -->
            <BypassIf Property="CRVSRunTimex86Installed" Compare="ValueGreaterThan" Value="0" />
    
            <!-- Block install if user does not have admin privileges -->
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
    
            <!-- Block install on Win95 -->
            <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
    
            <!-- Block install on NT 4 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>
    
          </InstallConditions>
    
          <ExitCodes>
            <ExitCode Value="0" Result="Success"/>
            <ExitCode Value="1641" Result="SuccessReboot"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
    
        <Command PackageFile="CRRedist2008_x64.msi"
    	     Arguments='/norestart'
    	     EstimatedInstalledBytes="21000000"
    	     EstimatedInstallSeconds="300">
    
          <!-- These checks determine whether the package is to be installed -->
    
          <InstallConditions>
            <!-- ByPass if the Processor is not x64 -->
            <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="AMD64"/>
    
            <!-- ByPass if we have installed the x64 redist -->
            <BypassIf Property="CRVSRunTimex64Installed" Compare="ValueGreaterThan" Value="0" />
    
    
            <!-- Block install if user does not have admin privileges -->
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
    
            <!-- Block install on Win95 -->
            <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
    
            <!-- Block install on NT 4 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>
    
          </InstallConditions>
    
          <ExitCodes>
            <ExitCode Value="0" Result="Success"/>
            <ExitCode Value="1641" Result="SuccessReboot"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
    
      </Commands>
    </Product>
    



    Friday, May 25, 2012 6:32 AM
  • Hi Bob,

    Thanks for your reply and suggestion.

    We have no issue in running the <application>.msi in our end.

    Basically we are facing issue with the prerequisites created in setup.exe. Setup.exe install the prerequisite on the machine before installing our application by calling <application>.msi.

    The install conditions provided in "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5\product.xml" seems to be wrong for "CRRedist2008_x86.msi" installation, for which Setup.exe is installing Crystal Report 64 bit again and again.

    Please find the "product.xml" property below:

    <?xml version="1.0" encoding="utf-8" ?>
    
    <Product
      xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
      ProductCode="BusinessObjects.CrystalReports.10.5"
    >
      <!-- Defines list of files to be copied on build -->
      <PackageFiles CopyAllPackageFiles="false">
        <PackageFile Name="CRRedist2008_x86.msi" HomeSite="http://resources.businessobjects.com/support/downloads/redistributables/vs_2008/redist/x86/CRRedist2008_x86.msi" PublicKey="3082010a0282010100fa82e561d38f1b5af3f6109a917dd80e4ce660a0eee8191aece4f9d9ca5d4e9eb7f87f734047bd0386376d9bb1625eb25c31e594fceea535ab559373c3fb4158102c6e9b2f4c6cb64588e0e9ee2ad7b951fcbfdaa773cf360b640f4cf35d14f6a532139a6bd4f3eb809e28fe3f263c1ebed8bab50647e59298272f9b7ec68bb962878b60046989cdb3ca7c641256fa9e5419f35510b08fce32e27fd41d4313efc59aeca8016f8d4334cd4d93e019feed172b4a5aed4a4b9369b7658607f3f21be5e14accfdd5b3eb2faab2ac8156587170a142c32a5940a2350ff01907b120db65ae2901e13f3a4ea887d83fd92e0505199cf6da4b58e8188a812cd0d30ad56d0203010001" />
        <PackageFile Name="CRRedist2008_x64.msi" HomeSite="http://resources.businessobjects.com/support/downloads/redistributables/vs_2008/redist/x64/CRRedist2008_x64.msi" PublicKey="3082010a0282010100fa82e561d38f1b5af3f6109a917dd80e4ce660a0eee8191aece4f9d9ca5d4e9eb7f87f734047bd0386376d9bb1625eb25c31e594fceea535ab559373c3fb4158102c6e9b2f4c6cb64588e0e9ee2ad7b951fcbfdaa773cf360b640f4cf35d14f6a532139a6bd4f3eb809e28fe3f263c1ebed8bab50647e59298272f9b7ec68bb962878b60046989cdb3ca7c641256fa9e5419f35510b08fce32e27fd41d4313efc59aeca8016f8d4334cd4d93e019feed172b4a5aed4a4b9369b7658607f3f21be5e14accfdd5b3eb2faab2ac8156587170a142c32a5940a2350ff01907b120db65ae2901e13f3a4ea887d83fd92e0505199cf6da4b58e8188a812cd0d30ad56d0203010001" />
      </PackageFiles>
    
      <RelatedProducts>
        <DependsOnProduct Code="Microsoft.Net.Framework.2.0" />
      </RelatedProducts>
    
      <InstallChecks>
        <MsiProductCheck Property="CRVSInstalled" Product="{AA467959-A1D6-4F45-90CD-11DC57733F32}"/>
        <MsiProductCheck Property="CRVSRunTimex86Installed" Product="{CE26F10F-C80F-4377-908B-1B7882AE2CE3}"/>
        <MsiProductCheck Property="CRVSRunTimex64Installed" Product="{2BFA9B05-7418-4EDE-A6FC-620427BAAAA3}. "/>
      </InstallChecks>
    
      <Commands Reboot="Defer">
        <Command PackageFile="CRRedist2008_x86.msi"
    	     Arguments='/norestart'
    	     EstimatedInstalledBytes="21000000"
    	     EstimatedInstallSeconds="300">
    
          <!-- These checks determine whether the package is to be installed -->
    
          <InstallConditions>
            <!-- ByPass if the Processor is not x86 -->
            <!--<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/>-->
    
            <!-- ByPass if we have installed CRVS -->
            <BypassIf Property="CRVSInstalled" Compare="ValueGreaterThan" Value="0" />
    
            <!-- ByPass if we have installed the x86 redist -->
            <BypassIf Property="CRVSRunTimex86Installed" Compare="ValueGreaterThan" Value="0" />
    
            <!-- Block install if user does not have admin privileges -->
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
    
            <!-- Block install on Win95 -->
            <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
    
            <!-- Block install on NT 4 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>
    
          </InstallConditions>
    
          <ExitCodes>
            <ExitCode Value="0" Result="Success"/>
            <ExitCode Value="1641" Result="SuccessReboot"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
    
        <Command PackageFile="CRRedist2008_x64.msi"
    	     Arguments='/norestart'
    	     EstimatedInstalledBytes="21000000"
    	     EstimatedInstallSeconds="300">
    
          <!-- These checks determine whether the package is to be installed -->
    
          <InstallConditions>
            <!-- ByPass if the Processor is not x64 -->
            <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="AMD64"/>
    
            <!-- ByPass if we have installed the x64 redist -->
            <BypassIf Property="CRVSRunTimex64Installed" Compare="ValueGreaterThan" Value="0" />
    
    
            <!-- Block install if user does not have admin privileges -->
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
    
            <!-- Block install on Win95 -->
            <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
    
            <!-- Block install on NT 4 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>
    
          </InstallConditions>
    
          <ExitCodes>
            <ExitCode Value="0" Result="Success"/>
            <ExitCode Value="1641" Result="SuccessReboot"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
    
      </Commands>
    </Product>
    

    Waiting for suggestion!!!

    Thanks,

    -Smarajit

    Friday, May 25, 2012 7:05 AM