What is causing this exception?

I copied across the Realtime example source code to a new project and this line:

Services = DataServices.Instance;

Causes the exception below. Any idea how to fix it? I have checked the references and added and replaced each of them without affecting it. On the same machine, in a separate instance of VS 2017, I can run the example just fine.

The only configuration change that I made was that when I created the project it was configured as "Any CPU". After trying to compile it I changed the target to x64 to conform to the example. The TR references are all 64-bit builds as well.

Thanks.

Here is the exception detail...

ThomsonReuters.Desktop.SDK.DataAccess.TinyIoCResolutionException
HResult=0x80131500
Message=Unable to resolve type: ThomsonReuters.Desktop.SDK.DataAccess.IInternalDataServices
Source=ThomsonReuters.Desktop.SDK.DataAccess
StackTrace:
at ThomsonReuters.Desktop.SDK.DataAccess.TinyIoCContainer.DelegateFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options)
at ThomsonReuters.Desktop.SDK.DataAccess.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options)
at ThomsonReuters.Desktop.SDK.DataAccess.TinyIoCContainer.Resolve[ResolveType](String name)
at ThomsonReuters.Desktop.SDK.DataAccess.DataServices.get_Instance()
at DataApiUsageExampleRealtimeData.Program.InitializeDataServices(String appName) in C:\Users\andy\source\repos\Eikon\TestEikonDotNet1\Program.cs:line 45
at DataApiUsageExampleRealtimeData.Program.Main(String[] args) in C:\Users\andy\source\repos\Eikon\TestEikonDotNet1\Program.cs:line 14
Inner Exception 1:
TinyIoCResolutionException: Unable to resolve type: ThomsonReuters.Desktop.SDK.DataAccess.IInternalDataServices
Inner Exception 2:
TinyIoCResolutionException: Unable to resolve type: ThomsonReuters.Desktop.SDK.DataAccess.UdapService
Inner Exception 3:
TinyIoCResolutionException: Unable to resolve type: ThomsonReuters.Desktop.SDK.DataAccess.Connection
Inner Exception 4:
TinyIoCResolutionException: Unable to resolve type: ThomsonReuters.Udap.Ipc.Managed.Common.BusAdapter.IEikonBus
Inner Exception 5:
FileNotFoundException: Could not load file or assembly 'ThomsonReuters.Udap.BusTools.dll' or one of its dependencies. The specified module could not be found.

Best Answer

  • Alex Putkov.1
    Alex Putkov.1 ✭✭✭✭✭
    Answer ✓

    Make sure you have the following dlls in the build folder: EikonPipeDll.dll and i18nresource.dll. They would normally be copied into the build folder at compile time because they are dependencies of ThomsonReuters.Udap.BusTools.dll, but I've seen cases where for some reason the copy didn't happen. If this is the case, you can just copy these files from the NuGet package you downloaded into the build folder manually. Similarly make sure that Microsoft C runtime libraries msvcp120.dll and msvcr120.dll are available either in the build folder or in the PATH.

Answers

  • andy29
    andy29 Newcomer

    Thank you for asking such an interesting question. It turns out that if you place i18nresource.dll in your BIN directory the problem will go away. The details on this file are:

    Product:Thomson Reuters EikonCompany:Thomson ReutersDescription:Thomson Reuters Eikon 2.0, I18nResourceVersion:7.1.6.9774MD5:9c7e5f8808039ae9536e808afeb88fceSHA1:f65e2e4118944fca383f04e9661f83ddbb87d8f4SHA256:823c69d7eaffde972c8216ba41e91a827f51953702e50a2fbc3fd808750063cbSize:71680Directory:%PROGRAMFILES%\Thomson Reuters\TRD 6\ProgramOperating System:Windows XPOccurence:Low oc0