How to create a .NET setup project with crystal report prerequisite? - c#

I have worked on a desktop application in .net and it uses crystal report for generating report in pdf/ms word. However, I am now trying to deploying this app with visual studio setup project. Now, finding a way to bundle the crystal report assemblies in some way so that they can also install automatically on a pc where crystal report isn't installed. How can I achieve this please?
Regards

There is a folder called Microsoft Visual Studio 9.0\Crystal Reports\CRRedist\IA64 in your Programs folder. There you will find a redistributable package. Just add this file to your setup project - user defined actions - and install it.
edit: As you mentioned setupProject CustomActions only allows exe/dll files
I found another solution. Hope this ones satisfies your needs.
Add a mergeModul to your setupProject (right-click solution explorer on setupProject, add mergeModul). A folder called C:\Program Files (x86)\Common Files\Merge Modules should automatically show up. There you may find a file called CrystallReportsRedistxxx.msm. Add this to your project and it should install too.
To find the right MergeModul for your version have a look at: BusinessObjects_CrystallReports
Adding MergeModul to setupProjects look at: SetupMergeModul
What kind of CrystalReport package to use, look at: MS CrystalReport I and MS CrystalReport II
hth

Related

How to Include Crystal Report Into WIX On Deployment?

I have finished a project that contains reports designed by Crystal Report, and now I want to deploy it, I found a lot of ways to do it (Install Shield,InnoSetup...)
But I am relieved to WIX (Windows Installer XML), and I want to know how to include some packages into it like Crystal report, .Net Framework...
Thank you all in advance
You could redistribute crystal reports runtime as separate msi, and include it in a bootstrapper for example.
Also there are merge modules for Crystal Reports. You can include these in wix using "Merge" element. This is more or less equivalent to checking corresponding checkbox in VS / Installshield.
You can find the merge modules in your CR VS installation folder. Also it looks you can find the latest ones here: http://scn.sap.com/docs/DOC-7824
.NET Framework cannot be included as msm package; you should use a bootstrapper. Take a look here for example:
http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_dotnet.html

MSM Merge Modules in Visual Studio 2013

Could someone please let me know where I might find resources for creating MSM files? While I am able to create MSI files using InstallShield, it seems that Visual Studio no longer supports Merge Module Projects, judging by the link below and the screenshot of my version of Visual Studio 2013 - http://msdn.microsoft.com/en-us/library/z6z02ts5(v=vs.80).aspx
To create a new merge module project:
On the File menu, point to Add, then click New Project.
In the resulting Add New Project dialog box, in the Project types pane, open the Other Project Types node and select Setup and Deployment Projects.
In the Templates pane, choose Merge Module Project.
For those still looking to use Merge Modules in Visual Studio; there is an official Microsoft extension for Visual Studio 2013 that lets you create Merge Module projects again.
Information on the extension, click here. The page leads to the Visual Studio Gallery where you can download the extension
Update 17 Sept 2015: an extension for VS2015 is also available here.
As discussed in the comments, Setup projects got removed from Visual Studio; a version of InstallShield was provided as their replacement. The standard alternative to InstallShield is WiX. WiX is somewhat arcane at first - it's a pretty thin layer over Windows Installer - but there are quite a few resources and examples out there.
Good resources for getting into WiX are http://wix.tramontana.co.hu/ and http://wixtoolset.org/documentation/manual/v3/. You can download the tooling from http://wixtoolset.org/

Adding References of Crystal Report DLLs

My OS is Windows 7 x64. Running VS Professional 2012. I'm working in a software written in C# and developed for .NET Framework 4.0 that uses Crystal Report. I've installed Crystal Report for developers version 13.0.5 on the machine.
I want to copy the required DLLs of Crystal Report to the output folder of the project. The purpose is to pack them with the installer so that the PC where the software will be installed won't be required to install Crystal Report.
I created a folder called DLLs and put the required Crystal Report DLLs in that folder. Then in the C# project's References node in solution explorer, I've added the DLLs located in DLLs folder. When I look in the added DLL's Property > Path, surprisingly I find that the path holds the path of the DLL from where I copied (C:\Program Files... instead of D:\Work...).
Why is this happening? How can I add reference to the copied DLL, not the original DLL?
Short Answer: Crystal Reports wont work without installing on client machines.
What you can do is doing some research about what does the Crystal Reports Installer does and doit yourself whithin you application. See here
Other sources: here and here, or google it.
Regards

How to install Crystal Reports viewer on client machine when client install windows installer

I run the same exe file on another computer, but it gives error. The application works on my pc, but does not work on user's pc. I try to compile the app in other development machine and it is work well, the problem is my app doesn't work on user's pc.
Could not load file or assembly 'CrystalDecision.Shared,
Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'
or one of its dependencies. The system cannot find the file specified.
There is a folder called Microsoft Visual Studio 9.0\Crystal Reports\CRRedist\IA64 in your Programs folder. There you will find a redistributable package. Just add this file to your setup project - user defined actions - and install it.
edit: As you mentioned setupProject CustomActions only allows exe/dll files
I found another solution. Hope this ones satisfies your needs.
Add a mergeModul to your setupProject :
(right-click solution explorer on setupProject, add mergeModul).
A folder called C:\Program Files (x86)\Common Files\Merge Modules should automatically show up. There you may find a file called CrystallReportsRedistxxx.msm.
Add this to your project and it should install too.
BusinessObjects_CrystallReports
MS CrystalReport
Adding Components to the Setup Project
How To Create Setup And Deployment Project With Crystal Report In VS Studio 2008

How do I include Visual C++ 2010 redistribuable in my setup?

When my application runs, it requires that Microsoft Visual C++ 2010 Redistributable Package (x86) is installed. How do I include it in my app setup?
I use the setup wizard of Visual Studio 2010 to create it.
Prerequisites Dialog Box
This dialog box specifies which prerequisite components are installed,
how they are installed, and which order the packages are installed.
To access this dialog box, select a project node in Solution Explorer,
and then, on the Project menu, click Properties. When the Project
Designer appears, click the Publish tab. On the Publish page, click
Prerequisites. For Setup projects, on the Project menu, click
Properties. When the Property Pages dialog box appears, click
Prerequisites.
it's all explained here, follow the suggested steps then add VC++ 2010 runtime as prerequisite. Done!
I would include the VC++ 2010 merge module into the setup project. Information on redistribution via merge module can be found in this MSDN article. General resitribution is available from the parent article.
Take a look at the following articles. They explain how to include requisite resources in a setup project.
http://msdn.microsoft.com/en-us/library/ms235317%28v=vs.90%29.aspx
http://msdn.microsoft.com/en-us/library/k3bxs9z6.aspx
If you're using a deployment project, I would recommend using Merge Modules.
Redistributing By Using Merge Modules
Visual Studio installs several merge modules for each Visual C++
component that may be redistributed with your application. They may be
found in the Program Files\Common Files\Merge Modules folder. Each of
these merge modules may be used to deploy Visual C++ DLLs to the
target system.
Adding merge modules to your project is fairly straight forward.
To add a merge module to a deployment project
Select the deployment project in Solution Explorer.
On the Project menu, point to Add, and then click Merge Module.
In the resulting Add Modules dialog box, browse to the location of the
merge module that you want to add.

Categories