Hello,
I am adding QAction for a protocol and have added Dlls: Newtonsoft.Json.dll;ff-netF48-server-sdk.dll;Microsoft.Extensions.Logging.Abstractions.dll;Microsoft.Extensions.Logging.Configuration.dll;Microsoft.Extensions.Logging.Console.dll;Microsoft.Extensions.Logging.dll;Microsoft.IdentityModel.Logging.dll.
The error I am getting is:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: Method not found: 'Microsoft.Extensions.Logging.ILoggerFactory Microsoft.Extensions.Logging.LoggerFactory.Create(System.Action`1<Microsoft.Extensions.Logging.ILoggingBuilder>)'. at io.harness.cfsdk.client.api.CfClient.SetUpDefaultLogging(Config config) at io.harness.cfsdk.client.api.CfClient..ctor() at io.harness.cfsdk.client.api.CfClient.<>c.<.cctor>b__29_0() at System.Lazy`1.CreateValue() --- End of stack trace from previous location where exception was thrown ---
Hi Aditiben,
All QActions for all elements hosted on the DMA will run in the same SLScripting process. When a QAction triggers that uses certain DLLs that are not yet loaded it will search for that DLL on the DMA. DLL files stored in C:\Skyline DataMiner\Files\ will take precedence over DLL files in other folders if they are not strongly named (signed). This is standard Microsoft .NET assembly resolving behavior. If the files in C:\Skyline DataMiner\Files\ do not take precedence, DLL files stored in C:\Skyline DataMiner\ProtocolScripts\DllImport will take precedence over DLL files in other folders. This means if DM has in those folders an older DLL version you might end up with the missing method exception.
Conclusion: Make sure if you are using DLLs that exist in the C:\Skyline DataMiner\Files\ folder or in the C:\Skyline DataMiner\ProtocolScripts\DllImport folder, that you load the same version in your solution. This way you will see from your solution that these methods do not exist in those DLL versions.
More info can be found here:
dllImport attribute | DataMiner Docs