Online Forums
Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.
Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.
Do not use the Contact page for technical issues.
- Forum
- Discussions
- QuickOPC-Classic in .NET
- Product Lifecycle, Licensing
- LicensingManagement RegisterManagedResource: EasyDAClient vs EasyUAClient
LicensingManagement RegisterManagedResource: EasyDAClient vs EasyUAClient
No problem, I am glad it works!
Best regards
Please Log in or Create an account to join the conversation.
I commented the first IsDemo check and it now works as expected.
Thanks for the help and patience!
Have a great day,
Please Log in or Create an account to join the conversation.
The license needs to be registered before the first use of the component. That's not the case in your code. You first instantiate the EasyDAClient and look at its license, and only then you register the license. Doing so will fix it to the license it had at the time you displayed the license, that is, the trial license. The license cannot be swapped afterwards.
Best regards
Please Log in or Create an account to join the conversation.
Otherwise it is very simple.
I uninstalled all the version of EasyOPC I had on my pc (not necessary) and also uninstalled all the license I previously installed with the license manager application.
(see attached screenshot)
The code is simple with just one class:
using OpcLabs.BaseLib.ComponentModel;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.UA;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp
{
class Program
{
public static void LoadLicense()
{
// Register a license that is we embed as a managed resource in this program.
// The first two arguments should always be "QuickOPC" and "Multipurpose".
// The third argument determines the assembly where the license resides.
// The fourth argument is the namespace-qualified name of the managed resource.
LicensingManagement.Instance.RegisterManagedResource("QuickOPC", "Multipurpose",
Assembly.GetExecutingAssembly(),
"ConsoleApp.Key-Permanent-ShareIt-1999420671-20210120.bin");
// Instantiate the client object, obtain the serial number from the license info, and display the serial number.
var client = new EasyDAClient();
long serialNumber = (uint)client.LicenseInfo["Multipurpose.SerialNumber"];
Console.WriteLine("SerialNumber: {0}", serialNumber);
// Instantiate the client object, obtain the serial number from the license info, and display the serial number.
var clientUA = new EasyUAClient();
serialNumber = (uint)clientUA.LicenseInfo["Multipurpose.SerialNumber"];
Console.WriteLine("SerialNumber: {0}", serialNumber);
}
public static bool IsDemo()
{
// Instantiate the client object.
var client = new EasyDAClient();
// Obtain the serial number from the license info.
long serialNumber = (uint)client.LicenseInfo["Multipurpose.SerialNumber"];
// Display the serial number.
Console.WriteLine("SerialNumber: {0}", serialNumber);
// Determine whether we are running as demo or trial.
if ((1111110000 <= serialNumber) && (serialNumber <= 1111119999))
return true;
else
return false;
}
static void Main(string[] args)
{
Console.WriteLine(IsDemo());
LoadLicense();
Console.WriteLine(IsDemo());
}
}
}
The output is in the attached screenshot, you can see that the EasyDAClient is not getting the license.
Please Log in or Create an account to join the conversation.
EasyDAClient should support this method as well. I tried your example and I cannot reproduce it. I get both serial numbers correctly. Any way you can help me to reproduce it?
App_Web_OpcLabs.EasyOpcClassicRaw.x86.dll: This is a known issue, but unfortunately no full solution. It is NuGet bug (referencing the assembly is not actually necessary, but it should be copied to the output directory, which NuGet is not doing; referencing it is a workaround that forces it to be copied, ).
Best regards
Please Log in or Create an account to join the conversation.
Same for the Unit Test project that is referencing the DLL project.
<TargetFramework>net471</TargetFramework>
<Platforms>x86</Platforms>
PS: second question unrelated question, is there a way to automatically make the nuget package to include the dll App_Web_OpcLabs.EasyOpcClassicRaw.x86.dll?
I thought it was automatic but I find myself having to do it manually or with a post compilation script. Otherwise I get a runtime error as it cannot find it.
Please Log in or Create an account to join the conversation.
I am sorry - one more question - is your project targeting .NET Core, or .NET Framework?
Regards
Please Log in or Create an account to join the conversation.
I'm using the most recent nuget package 5.59.1055
Please Log in or Create an account to join the conversation.
which QuickOPC version are you using please?
Kind regards
Please Log in or Create an account to join the conversation.
LicensingManagement.Instance.RegisterManagedResource("QuickOPC", "Multipurpose",
Assembly.GetExecutingAssembly(),
"xxx.Key-Permanent-ShareIt-xxx-xxx.bin");
// Instantiate the client object, obtain the serial number from the license info, and display the serial number.
var client = new EasyDAClient();
long serialNumber = (uint)client.LicenseInfo["Multipurpose.SerialNumber"];
Console.WriteLine("SerialNumber: {0}", serialNumber);
// Instantiate the client object, obtain the serial number from the license info, and display the serial number.
var clientUA = new EasyUAClient();
serialNumber = (uint)clientUA.LicenseInfo["Multipurpose.SerialNumber"];
Console.WriteLine("SerialNumber: {0}", serialNumber);
The EasyDAClient prints 1111111120 which is demo
The EasyUAClient print the correct license number
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-Classic in .NET
- Product Lifecycle, Licensing
- LicensingManagement RegisterManagedResource: EasyDAClient vs EasyUAClient