And*_*yev 19 asp.net .net-framework-version visual-studio-2017
突然,在添加一些NuGet包(主要是与ASPNET标识相关)后,它开始显示此错误:
FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
我有针对.Net Framework 4.7.1的目标.我尝试安装NuGet包System.Runtime 4.3.0,它没有帮助.web.config文件有一个引用:
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
bin文件夹中没有System.Runtime.dll.
有任何想法吗?
我使用Visual Studio 2017 15.5.5.
更新:
我在.csproj文件中使用PackageReference条目,因此它不是packages.config的问题.
似乎没有加载某些依赖项.
OzB*_*Bob 22
程序集绑定可能是错误的。
删除 app.config 或 web.config AssemblyBinding 部分。然后在包管理器窗口中运行这个 BindingRedirect:
Get-Project –All | Add-BindingRedirect
Run Code Online (Sandbox Code Playgroud)
可选:如果升级所有项目的框架版本,则需要重新安装所有项目的所有 Nuget 包。要轻松做到这一点,请使用此包管理器脚本:
Get-Project –All | % { Get-Package -ProjectName $_.ProjectName | % { update-package $_.Id -reinstall -ProjectName $_.ProjectName -ignoreDependencies } }
Run Code Online (Sandbox Code Playgroud)
然后运行上面的绑定重定向代码。
Pau*_*her 17
我最近将这个项目从net462升级到net471,我的问题是net462版本需要的一些程序集重定向,但是对net471非常困惑.
解决方案是删除web.config中的所有程序集重定向条目,并让Visual Studio重新计算它们 - 它们将显示为警告,可以单击该警告以将它们重新添加到web.config
小智 11
当这个开始发生时,我的ASP.NET项目已经在VS 15.8.4中的net471上了.当我尝试将现有的NuGet包更新到最新版本时,我会在IIS Express中启动项目时收到此错误.
BadImageFormatException:无法加载文件或程序集"System.Runtime"或其依赖项之一.
我能够通过修改项目的web.config文件来解决这个问题.
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.3.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
删除这两个System.Runtime依赖项的bindingRedirect行在我的项目中解决了这个问题,在我的web.config中留下了这个.
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
bin 文件夹中没有 System.Runtime.dll。
引用了 System.Runtime 包,但需要安装它。
在 Visual Studio 的菜单中,转到工具 > NuGet 包管理器 >管理解决方案的 NuGet 包...
在活动的 NuGet - 解决方案窗口中,转到选项卡已安装,导航到 Microsoft 的 System.Runtime。单击选择并查看侧窗是否存在该项目的版本。如果没有,请选择项目并单击安装。
构建解决方案。