如何在Visual Studio 2015中修复“无法加载文件或程序集'Microsoft.VisualStudio.Web'”错误?

8
我正在处理一个项目,该项目目前进展顺利。但是在重新安装Visual Studio后,我的项目无法加载。出现以下错误:
D:\UOSGC\Final\Banquet_Events_System\UI\UI.csproj: error: 无法加载文件或程序集'Microsoft.VisualStudio.Web, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'或其其中之一的依赖项。该文件或目录已损坏且无法读取。(来自HRESULT的异常: 0x80070570)
错误截图如下:

enter image description here

我的操作系统是Windows 10专业版,我正在使用Visual Studio 2015。
编辑
当我创建一个新项目时,它没有创建并显示以下错误:
“文件或目录已损坏且无法读取”。

enter image description here


尝试创建一个新的解决方案并向其中添加项目(可能需要将项目复制到另一个文件夹中)。 - Alex Kudryashev
尝试以管理员身份运行?您是否安装了旧版本的VS? - Jacob H
@JacobH 我已经通过更改 Web.Config 设置来构建它,然后问题就出现了。 - user1773603
你尝试在另一台机器上运行项目了吗?它的表现是否相同? - Lavinia N.
1
请在NuGet中执行以下操作:Install-Package Microsoft.VisualStudio.Web.BrowserLink.12.0 -Version 12.0.0。然后,进入文件夹并右键单击解决方案,检查路径是否正确。 - Bibin
显示剩余5条评论
11个回答

4
你尝试在管理员模式下打开项目了吗?

4

解决此问题可能需要多个步骤/操作:

步骤1: 首先检查 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config 文件。

在该文件的以下行之下添加一行:

<system.web> (not the section under <location allowOverride="true">)
<compilation>
<assemblies>
.....

<add assembly="Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

.....
</assemblies>

对于我的情况,该部分顶部已经有一个<remove ... />以删除这个程序集,但是添加项在底部附近。只需注释掉此条目,它就应该开始工作了。或者,如果您不确定是否要将其删除所有网站,请在您的网站web.config中添加相同的行,使用remove而不是add。


步骤2:(如果您使用的是VS 2019)重新安装 "AspNetDiagnosticPack.msi" 可以解决问题。在VS 2019安装包安装文件夹中会有一个文件。(已激活“不删除”安装包复选框*)

如果您没有这些包,可能需要离线安装。

在我的情况下,文件夹的名称为:"Microsoft.VisualStudio.AspNetDiagnosticPack.Msi,version=16.0.12276.43788"。

右键单击 "AspNetDiagnosticPack" 并选择 "修复"。


步骤3:您需要下载此MSI文件并执行它,并选择修复。


最后,如果以上任何步骤都未解决问题,则需要下载并安装此新的Visual Studio版本,其中已解决此问题。


2
我猜测您可能已经损坏了由.net提供的dll之一。这仅与您的项目相关,但在尝试创建新解决方案时也可能会出现问题。我建议您按照描述这里的步骤操作。

2
这种错误可能在你安装 Visual Studio 后,尝试从源代码控制或本地机器打开现有项目时发生。我曾多次遇到同样的问题,使用清除 MEF 组件缓存来解决此问题。
在 Visual Studio 中清除 MEF 组件扩展可以清除磁盘上的 MEF 缓存,并让 Visual Studio 重新构建它。清除 MEF 缓存的原因是它可能会损坏。这通常发生在安装或更新扩展或其他 Visual Studio 组件时。如果仍然出现错误,则检查项目的兼容性,如 x64/x86,否则保持为任何 CPU。
步骤:
1. 从市场或 Visual Studio 安装 Clear MEF 组件缓存扩展。点击这里; MEF 组件 2. 安装后,转到“工具”->“清除 MEF 组件缓存”,然后按“确定”。
3. 它将重新启动 Visual Studio。如果仍然出现错误,则检查您的 CPU 兼容性。

请尝试一下。我希望它能够正常工作,否则我就会知道这个解决方案行不通。 - Prasad Telkikar
这会将 Web.config 文件的设置重置为默认值吗?因为在更改设置后出现了问题,然后我重新安装了 VS。 - user1773603
我不是100%确定,但它不会重置您的web.config文件设置,它只会重置您的Visual Studio环境。在清除MEF组件缓存之前,请备份您的web.config。 - Prasad Telkikar
问题是在应用此解决方案后出现,请参见 https://stackoverflow.com/questions/47000138/could-not-load-file-or-assembly-or-one-of-its-dependencies-the-file-or-di - user1773603
你的意思是说,当你应用“清除MEF组件缓存”时,它会出现你在上一个评论中粘贴的链接中提到的错误。 MEF组件缓存将恢复你的web.config文件到其默认状态。 - Prasad Telkikar
显示剩余2条评论

2
由于您无法创建新的Web项目,因此您肯定遇到了Visual Studios的问题。最好完全卸载并重新安装Visual Studio。如果问题仍然存在,可能是GAC中的Microsoft.VisualStudio.Web已经损坏。
如果您可以用已知的好副本替换它,这将值得一试。我不确定卸载和安装所有版本的.NET框架对GAC中的损坏文件会产生什么影响,但由于您不知道哪些文件是坏的,如果有一个坏的,您可能还有其他文件也是坏的,所以这样做可能值得一试。
祝你好运!
更新:GAC是全局程序集缓存。它是Windows的一部分。
这里是一个关于如何更新GAC中程序集的stackoverflow问题。 更新GAC程序集

是的,我认为这就是.Net框架的问题。GAC是什么,我该如何做呢? - user1773603
我已经添加了一个关于使用GAC的链接。在使用GAC之前,您可能需要尝试卸载和重新安装.NET Frameworks。这可以通过转到控制面板并选择添加或删除功能来完成。 - N-ate

2

以下是您可以尝试的几个方法:

1.清除临时asp.net文件。

2.如果正在运行IIS,请停止IIS。

3.删除此文件夹中的所有文件:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

尝试在notepad++中打开csproj文件;

如果可以,请将其内容发送给我。 很可能一个GUID未被识别为有效类型。

如果您有另一个类似的备份csproj文件,请尝试在Visual Studio中打开它。 如果它可以打开,请使用notepad++或比较工具编辑此csproj文件。 特别查看引用部分。 尝试删除一些部分并进行测试。


1
您的文件已经损坏,就像错误提示一样。按照以下步骤依次解决问题:
  1. 卸载 Visual Studio 2015。如果无法从控制面板正确卸载,可以尝试在这里寻找一些提示。
  2. 扫描计算机查找任何病毒。例如,有很多免费的扫描器,如Malwarebytes
  3. 使用默认设置重新安装Visual Studio 2015
  4. 尝试创建一个项目并查看是否正常工作。
  5. 如果仍然出现有关损坏文件的错误,则可能是Windows本身损坏。在这种情况下,请备份您的文件,格式化硬盘并重新安装Windows。
  6. 如果仍然存在问题,则可能是硬盘有问题。请尝试更换硬盘,重新安装Windows和Visual Studio 2015。
希望这些步骤中的其中一个能够解决您的问题。

我已经通过更改 Web.Config 设置来构建它,然后问题就出现了。 - user1773603

1
如果您安装了2个或更多版本的VS,并卸载其中一个版本,则可能会意外删除依赖项。您可以尝试修复VS2015,看看是否有所帮助。

1
我认为你所经历的问题与Visual Studio无关,这是一个文件系统问题。D盘是一个USB驱动器吗?
驱动器已损坏。您需要使用像chkdsk这样的实用程序来修复它:
chkdsk /f d:

如果这不能解决问题,将解决方案复制到另一个驱动器,然后再试一次。

“chkdsk” 可能无法修复驱动器错误,因此请确保将其复制到不同的驱动器,而不仅仅是另一个文件夹。 - JuanR
我在C盘和D盘上有两个项目,但是它们都出现了相同的问题/错误。 - user1773603
驱动器 C 和 D 是逻辑驱动器吗?它们可能位于同一物理驱动器中。获取一个 USB 驱动器或其他设备,将其复制到其中。否则,可能是操作系统损坏,这种情况下您需要将其带到另一台计算机上并在那里尝试。 - JuanR

1

就像信息所说的一样,它已经损坏了。
你唯一能做的事情可能是将所有代码复制到一个新项目中。
否则,你可以尝试删除受损文件并重新创建它(查看此链接获取更多信息)
VS corrupted .sln file?
这可能是因为你错误地关闭了电脑。

我希望一切顺利。


似乎不是解决方案出了问题。 - N-ate

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