簡體   English   中英

無法加載文件或程序集“系統,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”或其依賴項之一

[英]Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies

我在某些用戶機器上生成了這個異常(約 1 個,共 20 個):

無法加載文件或程序集“系統,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”或其依賴項之一。 該系統找不到指定的文件。

我在網上和這個網站上發現了幾個關於這個錯誤的引用,但沒有任何幫助。

我有一個使用 WCF 連接到服務器的加載項應用程序。 使用 .NET Framework 3.5 和 VS 2008 構建的加載項。

該錯誤僅在一個用戶帳戶中的一台測試機器上重現。 我安裝了我的應用程序,並且只能從這台機器上的一個帳戶復制它,其他任何地方都可以正常工作。 此外,它只能通過我為其創建插件的一個版本的主機應用程序來重現(我假設是因為它使用了不同的 .NET 框架)。

我檢查了保險絲日志,看到以下內容:


Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  C:\Program Files\SolidWorks Corp\SolidWorks\sldworks.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = Home\User
LOG: DisplayName = System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files/SolidWorks Corp/SolidWorks/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.

因此,由於某些原因,它試圖使用v2.0.50727\mscorwks.dll加載程序來加載System.dllVersion=4.0.0.0 在構建機器上,我指的是System.dll的 2.0.0.0 版本。

我遇到了同樣的問題 - 一些用戶可以從 git 中提取並且一切正常。 有些人會拉並得到一個非常相似的異常:

無法加載文件或程序集 '..., Version=..., Culture=neutral, PublicKeyToken=...' 或其依賴項之一。 系統找不到指定的文件。

在我的特殊情況下,它是 AjaxMin,所以實際錯誤看起來像這樣,但細節無關緊要:

無法加載文件或程序集“AjaxMin,版本=4.95.4924.12383,文化=中性,PublicKeyToken=21ef50ce11b5d80f”或其依賴項之一。 系統找不到指定的文件。

結果證明是對解決方案執行以下操作的結果:

  1. 已為解決方案啟用 NuGet 包還原。

  2. 添加了一個項目,並在其中安裝了一個 Nuget 包(在本例中為 AjaxMin)。

  3. 項目已移至解決方案中的不同文件夾。

  4. Nuget 包已更新到較新版本。

慢慢但肯定地,這個錯誤開始出現在一些用戶身上。

原因是解決方案級別的 packages/respositories.config 保留了舊的項目引用,現在為移動的項目提供了一個新的第二個條目。 換句話說,它在重組之前有這個:

  <repository path="..\Old\packages.config" />

這在重組之后:

  <repository path="..\Old\packages.config" />
  <repository path="..\New\packages.config" />

所以第一行現在指的是一個項目,雖然在磁盤上,它不再是我的解決方案的一部分

啟用 Nuget 包還原后,將讀取兩個 packages.config 文件,每個文件都指向自己的 Nuget 包和包版本列表。 但是,在 Nuget 包更新到更新版本之前,沒有任何沖突。

但是,一旦 Nuget 包更新,只有活動的項目才會更新其存儲庫列表。 NuGet Package Restore 選擇只下載庫的一個版本 - 它在 repositories.config 中遇到的第一個版本,這是舊版本。 編譯器和 IDE 繼續運行,就好像它選擇了較新的一樣。 結果是一個運行時異常,說 DLL 丟失。

答案顯然是從該文件中刪除引用不在您的解決方案中的項目的任何行。

在將項目從 .net 4.5 降級到 .net 3.5 后,我得到了這個。

要解決我必須進入項目 - 屬性 - 設置窗口並刪除我的所有設置,保存項目,退出並重新啟動 Visual Studio,返回到項目 - 屬性 - 設置窗口並重新輸入我的所有設置及其默認值價值觀

這對我有用。 轉到 Project->Properted->Target Frawork->Change frame work like 3.5 to 4.0

我在 Linux 下遇到了問題,我需要安裝它們。 我不知道哪一個真正解決了問題,但在那之后錯誤消失了:

apt-get install mono-utils mono-runtime-sgen mono-runtime-common \
                mono-runtime-boehm mono-runtime-dbg mono-xbuild

我已經見過幾次了,它通常通過在 .NET Framework(無論應用程序嘗試使用哪個版本)上運行修復來修復。

您正在使用 .net 4? - 也許在客戶端上只安裝了“.net framework 4 客戶端配置文件”。 嘗試安裝完整包!! 在這里下載

就我而言,我能夠通過在 web.config 文件中設置 Debug=true 來找到 ScriptManager 的問題

我回答得太晚了,但它在我的情況下有效。如果您在項目中遇到此問題,請在您的 web.config 中添加以下行:

<compilation  batch="false" >

這在我的情況下有效。 如果您的 web.config 中已經有編譯標記,則只向其中添加 batch="false" 屬性。

您可以啟用 NuGet 包並更新您的 dll。 以便它工作。 或者,如果您知道解決方案需要哪個版本,您可以通過 vs 中的包管理器手動更新包。

即使我遇到了一些更奇怪的事情,我可以看到加載 dll 的 GAC 中沒有 dll 但 windows > 模塊顯示 system.dll version=4.0.0.0 已加載

我剛剛更改了我的目標 .net 框架並且它起作用了。在我的情況下,我從 .net 4.7 更改為 .net 4。右鍵單擊您的解決方案並選擇屬性選擇屬性

單擊應用程序>>目標框架

FileNotFoundException:無法加載文件或程序集“System.Configuration.ConfigurationManager,Version=7.0.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”或其依賴項之一。 該系統找不到指定的文件。

這是我的問題。 我還在項目和其他類庫中安裝了 system.configuration 程序集。 現在問題已經解決了。

我的 MS Surface Pro(第 5 代)也發生了同樣的問題。 打開 Surface Pro 后,我立即得到了這個異常,我的整個屏幕都黑屏了。 除了長按電源按鈕 30 秒關機外,我無法按下/單擊任何內容。 該平板電腦適用於西門子應用。 錯誤圖片

我使用了帶有 aspcore.report 的 net 6.0,這樣的問題發生在我身上我在服務器項目中安裝了 system.configuration 程序集,問題解決了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 無法加載文件或程序集“System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或其依賴項之一 無法加載文件或程序集&#39;System.Data.Linq,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089&#39;或其依賴項之一 FileNotFoundException-無法加載文件或程序集&#39;System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089&#39; 如何解決無法從程序集 &#39;mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#39; 加載類型 &#39;System.ValueTuple`3&#39;? 無法加載文件或程序集&#39;EntityFramework,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089&#39; 無法加載文件或程序集&#39;System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 561934e089&#39;或其依賴項之一 無法加載文件或程序集“EntityFramework.SqlServer,Version=6.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089” 來自程序集“mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”的“System.Security.Principal.WindowsImpersonationContext” &#39;System.Security.Permissions.SecurityPermission,mscorlib,版本 = 4.0.0.0,文化 = 中性,PublicKeyToken = b77a5c561934e089&#39; 失敗 應該引用模塊&#39;System.Data.Linq&#39;Version = 4.0.0.0,Culture = neutral,Publickeytoken = b77a5c561934e089&#39;
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM