C# Microsoft.data.edm.dll正在从VS 2013中构建的“某处”复制
我正在与另一个使用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不要从某个随机位置获取此DLLC# 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,因为它只发生在我的构建中。我们正在使用各种
谢谢请尝试使用详细的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?