![](/img/trans.png)
[英]'Could not load file or assembly 'Microsoft.ServiceBus, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies
[英]Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependenc
昨晚發生了更新,現在我發現自己無法按 ctrl + '.' VS 2015 中的代碼建議。出現一條錯誤消息,內容如下:
無法加載文件或程序集“Microsoft.CodeAnalysis,版本= 1.3.1.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依賴項之一。 該系統找不到指定的文件。
我仍然可以構建和開發,但是如果沒有此功能,這將非常煩人。 我承認,我變軟了!
任何人都有修復此錯誤的建議?
正如@CaptainAmerica 所指出的,解決方案是從 NuGet 更新 CodeDom 程序集。 應該指出如何在 Visual Studio 中執行此操作。 我在這里找到了解決方案:
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
基本上,在 Visual Studio 菜單中選擇:
Tools-> Nuget Package Manager -> Package Manager Console
在 Visual Studio 底部顯示的控制台中,運行以下命令:
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
如果任何選項不起作用,這里是處理這種情況的詳細指南....
首先版本很重要。 請注意錯誤中提到的版本...
Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
如果您看到上述錯誤,則表示它無法找到 1.3.1 版。 現在請創建新的 VS 項目。 沒有偏好,它可以只是簡單的控制台應用程序。 現在,一旦項目模板准備就緒,請轉到包管理器並使用您指定的版本運行以下命令...
Install-Package Microsoft.CodeAnalysis -Version 1.3.1
這將安裝所有軟件包。 讓它完成。 一旦完成。 我們根本不需要這個新創建的項目。 您可以完全刪除它。 嚴重地! 你可以刪除它。 我們這樣做是因為我們希望在全局 nuget 級別安裝該軟件包。 當你安裝某些東西時,nuget 也會將它存儲在你機器的全局級別。 路徑將是這樣的......
C:\Users\<<Your Windows User>>\.nuget\packages
您可以通過以下方式了解您的路徑...
%USERPROFILE%\.nuget\packages
現在您將在以下文件夾中看到所需的Microsoft.CodeAnalysis.dll ...
C:\Users\<<Your Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45
請注意,上面的路徑包含版本號 (1.3.1)。 如果您的版本不同,請查看該版本文件夾。
既然您已經有了 dll,您需要做的就是將該 dll 添加到 GAC。 為此,您將需要GacUtil.exe
此文件已與 Visual Studio 一起安裝。 您可以在 C 盤中搜索“GacUtil”。 對我來說,它就在下面的路徑上......
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
現在以管理員身份運行命令提示符並將當前目錄導航到包含 GacUtil 的路徑。 運行以下命令以在 GAC 中安裝該 dll。
gacutil
-i C:\Users\<<You Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45\Mi
crosoft.CodeAnalysis.dll
基本上提供我們全局安裝的dll的路徑。 它將顯示成功安裝的消息。
就這樣! 現在再次啟動您的 Visual Studio,您將解決此問題。
我在 Visual Studio 2015 Update 2 上遇到了同樣的問題,為了解決所有解決方案的全局問題,更新到Visual Studio 2015 Update 3 。 這是一個鏈接: 從這里下載
為了解決所有解決方案的這個問題,我需要將程序集Microsoft.CodeAnalysis.dll直接安裝到GAC – Global Assemblies Cache 。
我從C中的文件Microsoft.CodeAnalysis.dll:/用戶/ [用戶] /的NuGet /包/ Microsoft.CodeAnalysis.Common / 1.3.2 / LIB /便攜式net45 + win8的/ Microsoft.CodeAnalysis.dll。
要將程序集安裝到 GAC,我使用了https://github.com/LTruijens/powershell-gac 中的 PowerShell 腳本。
最后,我設法使用 PowerShell 中的以下命令將程序集安裝到 GAC:
Add-GacAssembly [myPath]\Microsoft.CodeAnalysis.dll
我也面臨同樣的問題。 我的 Visual Studio 2015 版本是 2.0。 我將其升級到版本 3。
問題解決了!!!
我已經解決了這個問題:
將 Visual Studio 2015更新為更新 3
從菜單中選擇View => Notifications => Visual Studio Update 3並單擊更新按鈕。
今天 ! 我遇到了同樣的問題,我通過重新啟動 Visual Studio 2015 來解決它:)
我也面臨同樣的問題,嘗試安裝Microsoft.CodeAnalysis.CSharp nuget 包。 如果未解決,請檢查您項目中Microsoft.Net.Compilers 的版本,我的版本為 1.0.0,這導致了問題,因此將Microsoft.Net.Compilers nuget 更新到 v1.3.2。
在這里找到解決方案: Github 討論
我通過將所有 Nuget Microsoft 依賴項更新到 v2.0.0 解決了這個問題。 這是使用 VS 2017。我使用的是預覽版。
就我而言,錯誤發生在關閉 Live Unit Testing 並手動運行測試之后。某些測試會失敗並顯示上述錯誤消息。
進入測試 --> 實時單元測試 --> 選項並發出“刪除持久數據”解決了問題。
我通過刪除位於解決方案中的 .vs 文件夾解決了類似的問題。
我在 NuGet 包中找到了缺失的程序集(在第一個被解決后,有多個其他程序集):https ://www.nuget.org/packages/Microsoft.Net.Compilers/1.3.1-rc
從 Dev 控制台使用 GacUtil 安裝它們。
不幸的是,上面帶有“nuget install/gacutil”的廣泛解決方案無法工作,因為依賴項 dll 的確切版本不可用。
以下解決了我在我們復雜的 webform 應用程序中的問題是在 Visual Studio -> 工具 -> Nuget -> 控制台包管理器中的解決方案中執行
Update-Package -reinstall
就我而言,我收到此錯誤是因為我的 Visual Studio 解決方案在其中一個項目的預構建步驟中嘗試使用TextTransform.exe
,但我的本地計算機在指定的路徑中沒有TextTransform.exe
我的預構建步驟和我的第一次修復嘗試只是將TextTransform.exe
從其他位置復制到 Visual Studio 預期的位置。 這似乎導致了此問題,因為TextTransform.exe
具有其他靜默依賴項。
我的解決方法是更改預構建步驟,而不是在以下位置查找文件
C:\Program Files (x86)\Common Files\microsoft shared\TextTemplating\14.0\TextTransform.exe
相反,它會查看 Visual Studio 安裝文件夾,其中包含一堆其他文件,大概其中一個是TextTransform.exe
的對等依賴項
C:\Program Files\Visual Studio\Common7\IDE\TextTransform.exe
這似乎為我解決了問題。
我遇到了同樣的問題,我使用的是 VS2017 並安裝了 Microsoft.EntityFrameworkCore.SqlServer 3.1.8,而在我的 VS2017 中,.Net 核心版本是 2.1 所以我將我的 Microsoft.EntityFrameworkCore.SqlServer 降級到 2.1.1 並重新啟動解決方案。
警告消失了!!
根據https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-5.0&tabs=visual-將項目升級到 .Net 5 后,我在 VS2019 中遇到了類似的錯誤工作室。
錯誤 CS0006:找不到元數據文件“C:\\Users\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\1.1.0\\analyzers\\dotnet\\cs\\Microsoft.CodeAnalysis.Analyzers.dll”。
'C:\\Users\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\1.1.0\\analyzers\\dotnet\\cs\\Microsoft.CodeAnalysis.CSharp.Analyzers.dll' 無法找到錯誤 CS0006:元數據文件
修復是關閉並重新打開 VS 2019
我在嘗試從 github 構建某人的代碼時遇到了這個問題。 我在 VS 2019 中打開它,但我也有 VS 2022。在 VS 2022 中打開和構建剛剛工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.