0

我的 VisualStudio 2017 Wep API 项目出现此错误:

无法加载文件或程序集 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

堆栈跟踪:

=== Pre-bind state information ===
LOG: DisplayName = System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
LOG: Appbase = .../WebApp/
LOG: Initial PrivatePath = ...\bin
Calling assembly : System.Runtime.CompilerServices.Unsafe, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: ...\web.config
LOG: Using host configuration file: ...\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 4.0.0.0 redirected to 4.1.1.0.
LOG: Post-policy reference: System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/30ca8c3f/b4b96212/System.Runtime.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/30ca8c3f/b4b96212/System.Runtime/System.Runtime.DLL.
LOG: Attempting download of new URL file:///D:/DSTS/WF/WF1_0/WebApp/bin/System.Runtime.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Build Number
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

无法准确确定它何时发生,但在更新到 Visual Studio(到版本 15.3.2)或更新 wep Api 包之后。

出现了一些其他问题,我已经解决了,但现在我陷入了这个错误。调用程序集是System.Runtime.CompilerServices.Unsafe. 我的第一个猜测是降级这个包和依赖于此的包,女巫我已经做过但没有成功。

我还尝试重新安装解决方案中的所有包,检查失败的程序集引用(有一些),检查重复的包版本。没运气。

更新:经过几次颠簸之后,System.Runtime 现在出现在参考文件夹中,但标记为黄色(缺失)。我只是重新安装“System.Runtime”包,所以要么我的解决方案已损坏,要么包作为错误。目标框架是 4.7

4

1 回答 1

0

就我而言,当使用 Visual Studio 2017 打开解决方案并收到此错误时,要解决此问题,我必须结合以下内容:

1) 在“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe.config”中

找到任何出现的“..\..\MSBuild” 并将其替换为 “C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild”

2) 我注意到文件夹中缺少我的Microsoft.Build.Framework.dll,进行了搜索并在 “C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\ amd64\"。将其复制到“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE”

3) 同样,在 deven.exe.config 中,更改

codeBase 版本="15.1.0.0" href="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build.Framework.dll"

到 amd 文件夹中的版本,在我的例子中: codeBase version="15.3.409.57025" href="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build .Framework.dll"

我假设这与我安装了 VS2017 Enterprise v15.3 并且某些东西已损坏或它是一个错误有关。

在任何情况下,这都不是永久修复,但现在它对我来说很好,并且已经解除了我的进步。如果我发现新的东西会更新。

于 2017-09-20T09:13:55.990 回答