无法加载DLL' Microsoft.WITDataStore64.dll'在我的Azure WorkerRole项目中

时间:2016-11-14 01:23:02

标签: c# .net azure dll

当我执行我的应用程序时,一切正常,直到它尝试执行该行:

teamProjectCollection.GetService<WorkItemStore>();

它打破了错误:

  

类型&#39; System.DllNotFoundException&#39;的例外情况发生在   Microsoft.TeamFoundation.WorkItemTracking.Client.dll但不是   用户代码处理

     

其他信息:无法加载DLL   &#39; Microsoft.WITDataStore64.dll&#39;:指定的模块不能   找到。 (HRESULT异常:0x8007007E)

我知道这有记录在stackoverflow问题here和微软响应here中,但我不知道如何实际实现修复!

微软的回应说:

  

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

     

Microsoft.WITDataStore32.dll在   .. \ Microsoft.TeamFoundationServer.ExtendedClient.14.83.1 \ LIB \本地\ X86   Microsoft.WITDataStore64.dll在   .. \ Microsoft.TeamFoundationServer.ExtendedClient.14.83.1 \ lib中\天然\ AMD64

我确实在文件资源管理器中看到我可以在路径中找到Microsoft.WITDataStore64.dll:

 C:\Users\<user>\.nuget\packages\Microsoft.TeamFoundationServer.ExtendedClient\14.102.0\lib\native\amd64

除非我导航到我的应用程序的bin文件夹,否则我已经看到.dll了!

WorkerProjectName\bin\Debug\Microsoft.WITDataStore64.dll  <-- already exists?!

所以现在我对我实际应该采取的措施感到困惑。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下解决方案吗?

  

我发现了有关您之前提交的问题的反馈。并且已关闭,请尝试Microsoft https://connect.microsoft.com/VisualStudio/Feedback/Details/1695433

提供的链接中的方法      

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

     

Microsoft.WITDataStore32.dll位于.. \ Microsoft.TeamFoundationServer.ExtendedClient.14.83.1 \ lib \ native \ x86   Microsoft.WITDataStore64.dll位于.. \ Microsoft.TeamFoundationServer.ExtendedClient.14.83.1 \ lib \ native \ amd64

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

答案 1 :(得分:0)

在Visual Studio中关闭解决方案以避免编辑冲突。然后将以下内容添加到mylist = [ [1, 1, 78, 7701], [1, 2, 78, 7527], [1, 3, 78, 8825], [1, 4, 78, 8859]] for idx, item in enumerate(zip(*mylist)): if idx == 3: print "the summation is: ", sum(item) 文件中的<ItemGroup>个元素之一:

Project.csproj

您可能必须搜索包含<ItemGroup> <Content Include="$(DevEnvDir)CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.WITDataSTore64.dll"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> 文件的确切文件夹,并更正Microsoft在我的系统上安装它的规范。另外,我展示了64位dll,你可能需要[有条件地]指定32位dll。

重新加载您的项目并构建。它应该将Microsoft.WITDataStore64.dll复制到项目输出目录中。 (我不是Azure的专家,但是期望发布到Azure也会为你推送dll。)