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