Crystal Reports server-side export to PDF

I've created a class library that uses the Crystal Reports components to, from a RPT file, generate a PDF file.
Then I created an extension to wrap the calls to that library.
The problem is that, when I upload both the library and the extension, the library doesn't work, it says "File or assembly name CrystalDecisions.Shared, or one of its dependencies, was not found."

Any ideas on what I have to install on the server to fix this?
In order to make your extension work you'll need to include the appropriate library files in your extension.
To do this you should:
1 - Select Visual Studio.Net -> Solution Explorer ->References ->CrystalDecisions.Shared
2 - In properties change Copy Local to True
3 - Compile your project
4 - In Service Center edit your extension and add the dependency file
CrystalDecisions.Shared.dll that has been copied to the output path of your C# project

Repeat this procedure for all relevant files.
For more information please refer to OutSystems Service Studio Help\Extensions\Coding an extension\Dependencies of an extension

Hope this helps
Tried that already and it didn't work. It then asks for CrystalDecisions.CrystalReports.Engine.dll, if I add that to the extension it says CrystalKeyCodeLib.dll is missing and I add all of them, it says keycodeV2.dll is missing.

I've tried installing Crystal Reports 9 .NET Redist, but it didn't work either...

My guess is that I have to install some part/component of Crystal Reports but I have no idea which... :(
For anyone with the same problem, here is the solution:

First, in Visual Studio, create a setup project.

To this project add the following merge modules:

-VC_User_CRT71_RTL_X86_---.msm (used for reports based on ADO.NET)
-VC_User_STL71_RTL_X86_---.msm (used for reports based on ADO.NET)

Then set the License Key property of regwiz using the one found in VS.NET Help->About. It's the one for Crystal Reports and looks like AAP50-GS00000-U7000RN.

The setup project doesn't have to actually install anything, just the merge modules.

Then build it and install it on the server.

Now you must give ASP.NET permission to access the registry key where the license key is stored. To do this do the following:

1-Go into the 32 bit Registry Editor (Start > Run > then type "regedt32").
2-Go to the 'HKEY_CLASSES_ROOT' window and select the 'Interface' key.
3-Highlight "{4A4D268A-DF9B-4FC1-8301-D9FEEEF69F9C}" and select the "Security" menu then click "Permissions…".
4-In the permissions dialog, add the "ASPNET" account from the local machine and give this account at least read rights.
Repeat steps 2 to 4, except use the "{8D43D0B9-C14E-4577-9E67-A9A1EEF82302}" key under the "TypeLib" key.

And that's it :)
I was facing the same problem, tried what is said above but now I’m having other error:

Access to the path 'C:\Program Files\OutSystems\Service Center\test\teste_espace\jinacio\6' is denied

I think it is a problem with writing the file in disk, or accessing to report maybe.

Does anyone faced same result before?
I've created an extension to do this (Crystal Reports server-side export to PDF), and shared it in this topic:
please check the following link , it will explain deployment