Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft.data.edm.dll正在从VS 2013中构建的“某处”复制_C#_Asp.net_Dll_Visual Studio 2013 - Fatal编程技术网

C# Microsoft.data.edm.dll正在从VS 2013中构建的“某处”复制

C# Microsoft.data.edm.dll正在从VS 2013中构建的“某处”复制,c#,asp.net,dll,visual-studio-2013,C#,Asp.net,Dll,Visual Studio 2013,我正在与另一个使用VS2013和VSO的开发人员协作 解决方案在他的机器上运行良好,但我的机器抱怨: 无法加载文件或程序集“Microsoft.Data.Edm”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。来自HRESULT的异常:0x8013100 我们已经将此隔离,因为解决方案中的一个项目正在将此DLL的6.5.0版本复制到生成时的bin文件夹中,该文件夹将覆盖解决方案其他部分所需的6.5.2版本 我们不确定它在哪里找到这个版本的DLL,因为它只发生在我的构建中。我们正在使用各种

我正在与另一个使用VS2013和VSO的开发人员协作

解决方案在他的机器上运行良好,但我的机器抱怨: 无法加载文件或程序集“Microsoft.Data.Edm”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。来自HRESULT的异常:0x8013100

我们已经将此隔离,因为解决方案中的一个项目正在将此DLL的6.5.0版本复制到生成时的bin文件夹中,该文件夹将覆盖解决方案其他部分所需的6.5.2版本

我们不确定它在哪里找到这个版本的DLL,因为它只发生在我的构建中。我们正在使用各种nuget软件包,但所有这些软件包都是最新的,并且在我们的机器之间是相同的

VS是否从机器上的标准位置拾取此类DLL?我搜索了我的硬盘,发现DLL的各种版本从2.0到2.6.2。其中最可疑的似乎是: C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.Data.Edm.5.2.0\lib\net40

是否有任何地方我可以告诉VS不要从某个随机位置获取此DLL


谢谢

请尝试使用详细的MSBuild信息工具->选项->项目和解决方案->生成并运行,然后复制输出并搜索Microsoft.Data.Edm.dll,以查找复制的位置和来源

要强制复制正确版本,可以将程序集重定向添加到项目的app.config文件。如果使用了NuGet,则可能已经有了此部分:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.6.2.0" newVersion="5.6.2.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

这将强制在编译时使用正确的版本,并且不会尝试从GAC或系统路径环境变量获取其他版本。

是否将引用设置为特定的版本x?