To find out what version your app is using in code add this:
VB:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Reflection
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub CrystalReportViewer1_Load(sender As Object, e As EventArgs) Handles CrystalReportViewer1.Load
For Each MyVerison As Assembly In AppDomain.CurrentDomain.GetAssemblies()
If MyVerison.FullName.Substring(0, 38) = "CrystalDecisions.CrystalReports.Engine" Then
'File: C:\Windows\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.2000.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll
'InternalName: Crystal Reports
'OriginalFilename:
'FileVersion: 13.0.9.1312
'FileDescription: Crystal Reports
'Product: SBOP Crystal Reports
'ProductVersion: 13.0.9.1312
'Debug: False
'Patched: False
'PreRelease: False
'PrivateBuild: False
'SpecialBuild: False
'Language: English (United States)
Dim fileVersionInfo As System.Diagnostics.FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(MyVerison.Location)
MessageBox.Show(fileVersionInfo.FileVersion.ToString())
Return
End If
Next
Dim Report As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Report.Load("C:\reports\formulas.rpt")
CrystalReportViewer1.ReportSource = Report
End Sub
End Class
In C# add this to the INIT sectionn, and note it outputs to a text box an not a message box:
public frmMain()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
foreach (Assembly MyVerison in AppDomain.CurrentDomain.GetAssemblies())
{
if (MyVerison.FullName.Substring(0, 38) == "CrystalDecisions.CrystalReports.Engine")
{
//File: C:\Windows\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.2000.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll
//InternalName: Crystal Reports
//OriginalFilename:
//FileVersion: 13.0.9.1312
//FileDescription: Crystal Reports
//Product: SBOP Crystal Reports
//ProductVersion: 13.0.9.1312
//Debug: False
//Patched: False
//PreRelease: False
//PrivateBuild: False
//SpecialBuild: False
//Language: English (United States)
System.Diagnostics.FileVersionInfo fileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(MyVerison.Location);
txtRuntimeVersion.Text += fileVersionInfo.FileVersion.ToString();
// check if CrsytalDecisions.Enterprise dll's can be loaded ( Anything but Cortez - managed reporting )
if (fileVersionInfo.FileVersion.Substring(0, 2) == "13")
{
btnRasOpen.Enabled = false;
}
CRVer = fileVersionInfo.FileVersion.Substring(0, 2);
return;
}
}
Don