无法加载文件或程序集“WebMatrix.Data, Version=3.0.0.0”。

9
无法加载文件或程序集'WebMatrix.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'或其某个依赖项。系统找不到指定的文件。
4个回答

26

这是您创建的解决方案还是下载的解决方案(作为同事完成的工作或示例)?您是否在Visual Studio中安装了最新版本的NuGet,并检查了项目的已安装包 - 如果您从源代码控制或在线zip示例中下载了解决方案,则可能需要还原包。

最简单的方法是检查"Tools" > "Extensions and Updates" 中的NuGet Package Manager是否是最新版本,然后(选择适用于Visual Studio的相应项目)选择"Project" > "Manage NuGet Packages"。如果安装的包未在您的解决方案包目录中找到,则NuGet应该会提供还原这些包的选项。

或者,您可能已添加了一个依赖于该包的软件包,而您没有安装它或安装了先前版本的软件包。

要在NuGet Package Manager Console中安装包,请键入:

Install-Package Microsoft.AspNet.WebPages.Data

或搜索"Microsoft.AspNet.WebPages.Data",并在上述说明中访问的"Manage NuGet Packages"窗口中进行操作。

如果您安装了以前的软件包版本,则可能需要使用以下代码将其版本号重新映射到版本3.0.0.0,以避免破坏具有依赖关系的软件包-

<dependentAssembly>
  <assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

谢谢回复:我的这个问题已经解决了,但是我在另一个程序集中遇到了同样的错误。无法加载文件或程序集“System.Web.Razor,Version=3.0.0.0”。 - Jagmohan Kasana
请使用软件包“Microsoft.AspNet.Razor”重复上述步骤-请参阅http://www.nuget.org/packages/Microsoft.AspNet.Razor/。 - pwdst
如果你想安装3.0.0版本的包而不是当前的3.1.0版本,那么请在“程序包管理控制台”中键入“Install-Package Microsoft.AspNet.Razor -Version 3.0.0”。 - pwdst
我仍然遇到错误:无法加载文件或程序集“System.Web.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”之一或其依赖项。系统找不到指定的文件。当我通过Install-Package Microsoft.AspNet.Razor安装它时,我得到了响应HRSystem已经引用了'Microsoft.AspNet.Razor 3.1.2'。 - Jagmohan Kasana
谢谢兄弟,这对我有用。安装包 Microsoft.AspNet.WebPages.Data。 - Ali
是的,升级包Microsoft.aspnet.webpages.data已经生效。 - Zonus

3

我曾经遇到过类似的问题,以下是我解决问题的方法:

  1. 通过包管理器控制台(从Visual Studio)安装软件包,使用以下命令:

    PM> Install-package WebMatrix.Data

    PM> Install-package WebMatrix.WebData

  2. 在Web.config文件中,在<runtime></runtime>标签之间添加一个绑定重定向:

    
    
    <dependentAssembly> <assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly>

3.我将两个dll文件从/YourProject/packages文件夹复制到/YourProject/bin文件夹中。

(可选) 如果在/YourProject/packages文件夹中找不到dll文件,请尝试在/YourProject/bin/Debug文件夹中搜索dll文件,然后将其复制/粘贴到/YourProject/bin文件夹中。

这对我解决了问题。


0
唯一成功的方法是编辑 DLL 的属性(在解决方案资源管理器中右键单击 WebMatrix.WebData DLL,然后选择“属性”),将“复制本地”属性更改为 true。WebMatrix.Data DLL 也是如此。

0

以下解决方案对我们有所帮助

步骤1:删除服务引用并构建应用程序(将显示错误) 步骤2:再次添加服务引用 -> 单击高级按钮 步骤3:取消选中“在引用的程序集中重用类型”,然后单击“确定” 步骤4:重新构建应用程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接