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
    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

  • 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 Eikon


    Company:


    Thomson Reuters


    Description:


    Thomson Reuters Eikon 2.0, I18nResource


    Version:


    7.1.6.9774


    MD5:


    9c7e5f8808039ae9536e808afeb88fce


    SHA1:


    f65e2e4118944fca383f04e9661f83ddbb87d8f4


    SHA256:


    823c69d7eaffde972c8216ba41e91a827f51953702e50a2fbc3fd808750063cb


    Size:


    71680


    Directory:


    %PROGRAMFILES%\Thomson Reuters\TRD 6\Program


    Operating System:


    Windows XP


    Occurence:


    Low
    oc0