13
votes

I am attempting to switch to the TFS 2015 SDK dlls (Version 14) for a few reasons. First, they are in nuget and second, the 2013 SDK dlls (Version 12) require the 32-bit flag flipped in IIS.

I pulled down nutget package and the namespaces all line up with the existing version 12 namespaces.

Everything compiles fine and there was no error on local deployment.

However, when I attempt to load projects using the WorkItemStore service.

TfsTeamProjectCollection collection = new TfsTeamProjectCollection(URL);
var service = collection.GetService<WorkItemStore>();

I get:

Additional information: Unable to load DLL 'Microsoft.WITDataStore64.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

When I switch back on the 32 bt flag in IIS I get:

Additional information: Unable to load DLL 'Microsoft.WITDataStore32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Note: this was all working code, all I did was remove the references to the GAC assemblies and add the NUGET package.

According to Microsoft, the nuget package should work with TFS 2013 and work for users for the 2013 SDK

Existing Windows apps leveraging an older version of the TFS Client OM.

4
Renaming the WITDataStore.dll from the 64bit GAC to WITDataStore64.dll and copying it to the bin works.Sam Sussman
You might want to check if the Copy Local property of the referenced assembly is set to: False, if it is, set it to Always. This way it will be copied to the output directory when the project builds.Stefan
It isn't a referenced assembly and it wasn't before. I get an error when I try to reference it directly.Sam Sussman
I will keep this question for reference. A bug has been submitted and a MS forum mod was able to recreate the error hereSam Sussman
Is it possible that a COM component isn't registered? The error message and HR result tend to point that direction.Stefan

4 Answers

5
votes

None of the above worked for me. I had to copy that file to my C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE folder (found this out by using procmon to see where my app was looking for it).

2
votes

I had to add the dll to the startup-project of my solution to get this to work. example:

MyTFSApp (windows client) nuget package Microsoft.TeamFoundationServer.ExtendedClient installed or Microsoft.WITDataStore32.dll added to the bin folder

MyTfsLibrary (class library with code accessing WorkItemStore) nuget package Microsoft.TeamFoundationServer.ExtendedClient installed

0
votes

Copy file Microsoft.WITDataStore64.dll in folder C:\Windows\System32

-1
votes

Try copying those Dlls from the GAC into your local bin. Nuget packages are usually create references to the bin, so if your program is looking there instead of the GAC that could be why it is throwing the error.