Hi,
I have developed a plugin dll in c# witch, among others, uses TeeChart.dll version 1.1.2004.16592.
The TChart license is correctly embedded as a resource in the dll. The plugin is loaded by an application written in c#.
I have not the option to include the TeeChart license in this application, because a different company develops it.
When the plugin is used on machines without TeeChart installed the licensing fails.
I have developed several other plugins with other commercial controls.
These controls are also licensed and are working fine, so I assume there must be a solution.
Any hints are greatly appreciated.
Regards,
Daniel
licensing problem
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Hi Daniel,
You should read "Tutorial 17 - Designtime, Runtime and License Requirements". You'll find the tutorials at TeeChart's program group.
There is also a licensing aspect that came to light that we weren't aware of in time for the documentation and that may help to know.
The issue relates to applications that compile TeeChart into a DLL that is then used in turn by a different application. Please note the comments from a TeeChart Developer who ran through runtime licensing steps:
"...
It was not enough to provide
the .licx entry in building the DLL that instantiates and uses TeeChart -
no! In fact, even though the main project (the EXE module) did not
reference TeeChart, apparently it was necessary to add the TeeChart
licensing entry to this project's own .licx file
..."
Please check that the point might not apply in your case. If that's not relevant or of help and the test below doesn't help either, please let us know what type of application TeeChart is being built into along with any other information you might feel is of use and we'll look for other causes of the problem.
Another test (assuming your application doesn't fall into the dll type described above), would be to recompile the TeeChart demo (assuming you ran the precompiled exe?) on your development machine and then test that on the runtime machine. That would confirm that the designtime license is correctly in place on your development machine and able to correctly 'compile-in' the license.
Please let us know if the above doesn't help resolve the issue.
You should read "Tutorial 17 - Designtime, Runtime and License Requirements". You'll find the tutorials at TeeChart's program group.
There is also a licensing aspect that came to light that we weren't aware of in time for the documentation and that may help to know.
The issue relates to applications that compile TeeChart into a DLL that is then used in turn by a different application. Please note the comments from a TeeChart Developer who ran through runtime licensing steps:
"...
It was not enough to provide
the .licx entry in building the DLL that instantiates and uses TeeChart -
no! In fact, even though the main project (the EXE module) did not
reference TeeChart, apparently it was necessary to add the TeeChart
licensing entry to this project's own .licx file
..."
Please check that the point might not apply in your case. If that's not relevant or of help and the test below doesn't help either, please let us know what type of application TeeChart is being built into along with any other information you might feel is of use and we'll look for other causes of the problem.
Another test (assuming your application doesn't fall into the dll type described above), would be to recompile the TeeChart demo (assuming you ran the precompiled exe?) on your development machine and then test that on the runtime machine. That would confirm that the designtime license is correctly in place on your development machine and able to correctly 'compile-in' the license.
Please let us know if the above doesn't help resolve the issue.
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
Hello Daniel,
The physical license used by TeeChart derives from Microsoft's System.ComponentModel.LicenseProvider class and is intended to prevent the use of TeeChart at designtime without the presence of the license. As your DLL offers TeeChart to a designtime environment then the physical license needs to be installed in the machines concerned.
If the DLL exposes the ability to modify any Charting characteristics then the developers of the application housing the DLL should own a TeeChart Developer license. If no aspect of the DLL API influences Chart characteristics then Steema does not consider a Developer license as obligatory at the installed machine and I suggest that you download the license installer utility to install the physical license in the machine where TeeChart is being used. Other aspects outlined in Tutorial 17 remain true, that the licenses.licx file of the application being compiled should contain a line referring to TeeChart.
Regards,
Marc Meumann
The physical license used by TeeChart derives from Microsoft's System.ComponentModel.LicenseProvider class and is intended to prevent the use of TeeChart at designtime without the presence of the license. As your DLL offers TeeChart to a designtime environment then the physical license needs to be installed in the machines concerned.
If the DLL exposes the ability to modify any Charting characteristics then the developers of the application housing the DLL should own a TeeChart Developer license. If no aspect of the DLL API influences Chart characteristics then Steema does not consider a Developer license as obligatory at the installed machine and I suggest that you download the license installer utility to install the physical license in the machine where TeeChart is being used. Other aspects outlined in Tutorial 17 remain true, that the licenses.licx file of the application being compiled should contain a line referring to TeeChart.
Regards,
Marc Meumann
Steema Support
Hi Marc,
my pugin is not used in a designtime environment. I made a example project to clarify my problem:
http://www.dmdak.net/TChartLicense.zip
I think the problem is that you call LicenseContext.GetSavedLicenseKey with
null as the second parameter in GetLicense of your LicenseProvider.
In this case the license is retrieved from the primary assembly, witch is in my case the .exe.
To tell the function to look in the calling assembly the function Assembly.GetCallingAssembly could be used.
Regards,
Daniel
my pugin is not used in a designtime environment. I made a example project to clarify my problem:
http://www.dmdak.net/TChartLicense.zip
I think the problem is that you call LicenseContext.GetSavedLicenseKey with
null as the second parameter in GetLicense of your LicenseProvider.
In this case the license is retrieved from the primary assembly, witch is in my case the .exe.
To tell the function to look in the calling assembly the function Assembly.GetCallingAssembly could be used.
Regards,
Daniel
Hello Daniel,
Thanks for sending through the example. In this particular case the DLL, ClassLibrary1, provides designtime functionality for use by the Windows application, WindowsApplication1 (ie. to allow it to be used in VS.NET and to be designtime compiled). A TeeChart DesignTime License should therefore be present and the WindowsApplication1 project should include a licenses.licx file with the line "Steema.TeeChart.TChart, TeeChart" for it to correctly compile and function at runtime.
In this case when run, the CallingAssembly seen by the TeeChart's license check is "System" (and EntryAssembly "WindowsApplication1"). We're checking to see whether it is possible to pass "ClassLibrary1" as the Assembly (I don't think that's possible), but currently, in the example provided, TeeChart is behaving correctly as by design and the requirement of a TeeChart Designtime license at the machine where WindowsApplication1 is compiled is correct.
Regards,
Marc Meumann
Thanks for sending through the example. In this particular case the DLL, ClassLibrary1, provides designtime functionality for use by the Windows application, WindowsApplication1 (ie. to allow it to be used in VS.NET and to be designtime compiled). A TeeChart DesignTime License should therefore be present and the WindowsApplication1 project should include a licenses.licx file with the line "Steema.TeeChart.TChart, TeeChart" for it to correctly compile and function at runtime.
In this case when run, the CallingAssembly seen by the TeeChart's license check is "System" (and EntryAssembly "WindowsApplication1"). We're checking to see whether it is possible to pass "ClassLibrary1" as the Assembly (I don't think that's possible), but currently, in the example provided, TeeChart is behaving correctly as by design and the requirement of a TeeChart Designtime license at the machine where WindowsApplication1 is compiled is correct.
Regards,
Marc Meumann
Steema Support
Hi Marc,
Thank you for your time. I agree with you in the point that a license is necessary
while the application is designed in visual studio.
The problem i have is that my dll is a plugin that is loaded at runtime from another application.
The application uses my plugin through standardised interfaces.
I am using other commercial components without any problems,
so I suppose there must be a solution.
Regards,
Daniel
Thank you for your time. I agree with you in the point that a license is necessary
while the application is designed in visual studio.
The problem i have is that my dll is a plugin that is loaded at runtime from another application.
The application uses my plugin through standardised interfaces.
I am using other commercial components without any problems,
so I suppose there must be a solution.
Regards,
Daniel