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" ?>
<Product
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Microsoft.ChartControls"
>
<PackageFiles CopyAllPackageFiles="false">
<PackageFile
Name="MSChart.exe"
HomeSite="http://download.microsoft.com/download/c/c/4/cc4dcac6-ea60-4868-a8e0-62a8510aa747/MSChart.exe" />
</PackageFiles>
<RelatedProducts>
<DependsOnProduct
Code="Microsoft.Net.Framework.3.5.SP1"
/>
</RelatedProducts>
<InstallChecks>
<MsiProductCheck Property="ChartIsInstalled" Product="{41785C66-90F2-40CE-8CB5-1C94BFC97280}"/>
</InstallChecks>
<Commands>
<Command PackageFile="MSChart.exe">
<InstallConditions>
<!-- 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"/>
</InstallConditions>
<ExitCodes>
<DefaultExitCode Result="Success" />
</ExitCodes>
</Command>
</Commands>
</Product>
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" ?>
<Package
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
Name="DisplayName"
Culture="Culture"
LicenseAgreement="eula.txt"
>
<PackageFiles>
<PackageFile Name="eula.txt"/>
</PackageFiles>
<Strings>
<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>
</Strings>
</Package>
After implementing steps 1 through 8 MS Chart Controls will be available in Setup project prerequisites.