tfs 工作项 - 无法加载 DLL 'Microsoft.WITDataStore32.dll' (TeamFoundation.WorkItemTracking)



我发布这篇文章是希望它能为其他人节省时间和精力:

我当前的设置是VS2015针对TFS 2013.4

问题

我以前的电脑安装程序有VS2013,我一直在使用Microsoft.TeamFoundation.WorkItemTracking.Client命名空间从TFS获取一些工作项信息。

我最近不得不重建我的电脑,并继续开发一个程序来获取这些信息。

令我沮丧的是,我不断收到一个错误:

Unable to load DLL 'Microsoft.WITDataStore32.dll'

您不再需要安装TFS对象模型/团队资源管理器。您可以使用NuGet包

同样使用NuGet包,您可能会遇到同样的问题,即您的应用程序找不到本机DLL。

以下文本复制自https://connect.microsoft.com/VisualStudio/feedback/details/1695433/team-foundation-server-2015-sdk-missing-microsoft-witdatastore64-dll

Microsoft.WITDataStore*.dll是ExtendedClient包的一部分,它们是本机dll,不能在托管项目中引用。您需要手动将dll复制到您的bin文件夹中以进行运行时解析。

Microsoft.WITDataStore32.dll位于..中。。\Microsoft.TeamFoundationServer.ExtendedClient.14.83.1\lib\native\x86Microsoft.WITDataStore64.dll位于..中。。\Microsoft.TeamFoundationServer.ExtendedClient.14.83.1\lib\native\amd64

(注意,这些路径指向NuGet包文件夹)

最后,以下stackoverflow线程给了我答案:

tfs 2010 api dll microsoft teamfoundation框架服务器dll 在哪里

我需要安装什么才能获得微软teamfoundation工作项跟踪客户端

VS2015 dll与TFS 2013不兼容,因此不要Microsoft Visual Studio 14.0 Common7 IDE中查找dll

如果您使用TFS 2013,则必须安装Team Explorer 2013

它很小(只有130MB),并且包含正确的DLL。

安装后,您需要Browse...以获取此处的参考:

C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEReferenceAssemblies

如果您在处理TFS/VSTS时遇到Microsoft.WITDataStore32.dll问题,即在Visual Studio 2015中获取项目名称或获取测试用例id,那么您可以简单地将Team Foundation dll从14.0.0.0重定向到12.0.0.0版本,因为14版本的dll在检索此类数据时会产生问题,我们用来获取此类错误。

在分别从"TFS 2012和VS2013"迁移到"VSTS和VS2015"后运行编码的UI测试脚本时,我遇到了"无法加载DLL"Microsoft.WITDataStore32.DLL":找不到指定的模块。(HRESULT中的异常:0x8007007E)"的问题。

当我在应用程序配置中将引用的14个版本的dll重定向到12个版本时,问题得到了解决,如下所示:

   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

     <dependentAssembly>
       <assemblyIdentity name="Microsoft.TeamFoundation.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
       <bindingRedirect oldVersion="14.0.0.0" newVersion="12.0.0.0"/>
     </dependentAssembly>
     <dependentAssembly>
       <assemblyIdentity name="Microsoft.TeamFoundation.TestManagement.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
       <bindingRedirect oldVersion="14.0.0.0" newVersion="12.0.0.0"/>
     </dependentAssembly>
     <dependentAssembly>
       <assemblyIdentity name="Microsoft.TeamFoundation.WorkItemTracking.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
       <bindingRedirect oldVersion="14.0.0.0" newVersion="12.0.0.0"/>
     </dependentAssembly>
   </assemblyBinding>

谨致问候,Prasidh

我的情况是,我需要直接在测试项目中添加NuGet引用(我的自定义属性位于另一个项目中,dll没有复制到测试项目中)。

我将在Visual Studio 2017发布此信息,以防对某人有所帮助:

请检查中是否有"Microsoft.WITDataStore32.dll"以下路径:

C: \Program Files(x86)\Microsoft VisualStudio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team浏览器

如果没有,请尝试安装vs 2017的团队资源管理器,下载它来自这个博客:

https://blogs.msdn.microsoft.com/bharry/2017/04/05/team-explorer-for-tfs-2017/

然后在团队资源管理器文件夹中找到Microsoft.WITDataStore32.dll将其复制到上面的路径。

来源:MSDN

最新更新