Oct 06

Deploying Microsoft Chart Controls for Microsoft .NET Framework 3.5 is not supported in Visual Studio .NET Setup project by default due to unexistant boostrapper package (you cannot choose Chart Controls suite as prerequisite). In order to select chart package as prerquisite new boostrapper package should be created:

Step 1: Find bootrapper packages directory.
On 32bit environmenst it is located in
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages
On 64bit environmenst it is located in
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

Step 2: Create folder MS Chart Controls for NET Framwerk 35

Step 3: Copy mschart.exe to MS Chart Controls for NET Framwerk 35 folder.

Step 4: Create product.xml file and edit it

Step 5: Copy following content into it 
<?xml version="1.0" encoding="utf-8" ?>
 <PackageFiles CopyAllPackageFiles="false">
http://download.microsoft.com/download/c/c/4/cc4dcac6-ea60-4868-a8e0-62a8510aa747/MSChart.exe" />


  <MsiProductCheck Property="ChartIsInstalled" Product="{41785C66-90F2-40CE-8CB5-1C94BFC97280}"/>
  <Command PackageFile="MSChart.exe">
    <!-- ByPass if we have installed chart -->
        <BypassIf Property="ChartIsInstalled" Compare="ValueGreaterThan" Value="0" />
    <!-- Block install if user does not have admin privileges -->
        <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
    <DefaultExitCode Result="Success" />

Step 6: Create subfolder named en

Step 7: Create file eula.txt and copy content from MSChart installation eula.

Step 8: Create file package.xml and copy following content into it

<?xml version="1.0" encoding="utf-8" ?>

        <PackageFile Name="eula.txt"/>

        <String Name="DisplayName">Microsoft Chart Controls for .NET Framework 3.5</String>
        <String Name="Culture">en</String>
        <String Name="AdminRequired">Administrator permissions are required to install Microsoft Chart Controls for .NET Framework 3.5. Contact your administrator.</String>
        <String Name="AnotherInstanceRunning">Another instance of setup is already running. The running instance must complete before this setup can proceed.</String>
        <String Name="GeneralFailure">A failure occurred attempting to install Microsoft Chart Controls for .NET Framework 3.5.</String>


After implementing steps 1 through 8 MS Chart Controls will be available in Setup project prerequisites.