webentwicklung-frage-antwort-db.com.de

Datei oder Assembly '' oder eine ihrer Abhängigkeiten konnte nicht geladen werden

Hilfe bitte?

Ich habe nur eine Bibliothek und es macht mich verrückt. Dies ist der Fehler, den ich erhalte. Ich benutze keine anderen Abhängigkeiten.

Could not load file or Assembly 'FOD.Intranet.Lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=039c1f3a4c719e82' or one of its dependencies. The system cannot find the file specified. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileNotFoundException: Could not load file or Assembly 'FOD.Intranet.Lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=039c1f3a4c719e82' or one of its dependencies. The system cannot find the file specified.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the Origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[FileNotFoundException: Could not load file or Assembly 'FOD.Intranet.Lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=039c1f3a4c719e82' or one of its dependencies. The system cannot find the file specified.]
   NewCollection.VisualWebPart1.VisualWebPart1UserControl.TodaysNews() +0
   NewCollection.VisualWebPart1.VisualWebPart1UserControl.Page_Load(Object sender, EventArgs e) +52
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
   System.Web.UI.Control.OnLoad(EventArgs e) +132
   System.Web.UI.Control.LoadRecursive() +66
   System.Web.UI.Control.AddedControl(Control control, Int32 index) +350
   NewCollection.VisualWebPart1.VisualWebPart1.CreateChildControls() +155
   System.Web.UI.Control.EnsureChildControls() +146
   System.Web.UI.Control.PreRenderRecursiveInternal() +61
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3394
17
Imir Hoxha

Problem gelöst!

Ich dachte, dass Visual Studio die DLL in das GAC kopiert, aber anscheinend nicht. Also habe ich es dort manuell kopiert und es funktioniert. 

Eine Frage: Ist dies normal, dass Visual Studio es bei der Bereitstellung der Sharepoint-Anwendung nicht in das GAC kopiert?

Für diejenigen, die wissen möchten, wie man die DLL in GAC kopiert

es gibt zwei Möglichkeiten, die DLL nach GAC zu kopieren:

  1. kopieren Sie die DLL manuell

    1. Öffnen Sie das Verzeichnis c:\windows\Assembly im Windows Explorer
    2. Öffnen Sie eine andere Instanz von Windows Explorer, und wechseln Sie zu der Stelle, an der sich Ihre DLL befindet. Normalerweise befindet sich diese Datei im Ordner bin. (so haben Sie jetzt zwei Fenster geöffnet)
    3. wählen Sie die DLL aus, die Sie in GAC kopieren möchten, und ziehen Sie sie in das Assembly-Verzeichnis c:\windows\Assembly
  2. verwenden Sie VS, um es für GAC bereitzustellen.

    1. doppelklicken Sie in Ihrem Sharepoint-Projekt auf "Paket".
    2. Package.Package wird geöffnet. Suchen Sie unten links auf dem Bildschirm und klicken Sie auf "Erweitert". 
    3. klicken Sie dann auf "Hinzufügen" und wählen Sie "Baugruppe aus Projektausgabe hinzufügen ...". 
    4. Wählen Sie in der Dropdown-Liste Quellprojekt das Projekt aus und klicken Sie auf OK. 
    5. stellen Sie schließlich die Lösung bereit, und die DLL befindet sich im GAC.

danke für Ihre Unterstützung.

16
Imir Hoxha

Um zu erreichen, dass Visual Studio 3rd Party Assembly oder sogar Ihre eigene Assembly aus einem anderen Projekt in Lösung zu GAC hinzufügt, gehen Sie wie folgt vor:

  1. Öffnen Sie Package.package aus dem Package-Ordner in SharePoint-Projekt.

  2. Klicken Sie im unteren Bereich auf Erweitert.

  3. Klicken Sie auf Hinzufügen und wählen Sie den Typ der Baugruppe aus, die Sie hinzufügen möchten.

  4. Wählen Sie im Dialog dll file, chec GAC oder BIN aus, fügen Sie bei Bedarf sichere Steuerelemente und Klassenressourceneinträge hinzu. OK klicken.

Ihre Assembly wird in WSP gepackt, in Manifest definiert und jedes Mal bereitgestellt.

28
Oleg Savelyev

Bei Assemblys, die nicht in GAC und im Build referenziert sind, tritt dieser Fehler manchmal auch auf, wenn das Plattformziel nicht übereinstimmt. Passen Sie also den Assembly-Plattform-Typ an den Ort an, an dem er verwendet wird.

 enter image description here

1
Giri

Wenn der Fehler beim Veröffentlichen in Visual Studio 2012 auftritt deaktivieren Sie die Option "Beim Kompilieren vorbereiten" im Veröffentlichungsassistenten und versuchen Sie es erneut.

Un-check the "Precompile during publishing" box

0
SushiGuy
  • Stimmt die Versionsnummer überein?
  • Es ist komisch zu sehen, dass Sie versuchen, eine .lib-Datei anstelle einer DLL zu laden. Vielleicht wollten Sie stattdessen eine DLL laden?
  • Um diese Art von Problemen zu debuggen, versuchen Sie Fusion Logging .
  • Sie sagen, Sie verwenden nur eine Bibliothek, aber diese Bibliothek kann einige Abhängigkeiten haben, die Sie nicht kennen. Diese SO - Frage behandelt das Auflisten der Abhängigkeiten einer verwalteten .NET-Assembly.
0
dario_ramos

für Jungs, die sich immer noch mit diesem Problem befassen, müssen Sie wissen, dass es verschiedene GACutils gibt. Sie müssen also sicherstellen, dass Sie das richtige GACUTIL verwenden, um die DLL zur Korrektur der GAC einzusetzen 

zum Beispiel: wenn meine dll im 3.5 .net-Framework eingehalten wurde und meine Betriebssystemversion 64-Bit-Fenster war, würde sie sich unterhalb der Position befinden 

C:\Programme (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64

Kämpfte 4 dumme Tage, um das herauszufinden 

0
mps

Wenn Sie den Code Page.Load ("Steuerungspfad ...") verwenden. Stellen Sie sicher, dass die von Ihnen geladene Ascx-Datei keine Anweisungen enthält, die die Assembly aus Ihrer Ausnahmemeldung enthalten 

<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
0
Maks Matsveyeu

Bitte versuchen Sie, den Verweis auf DLL aufzuheben, dann erneut darauf zu verweisen und Ihr Projekt neu zu erstellen. Überprüfen Sie auch, ob die Version mit der Projekt-Web-Konfiguration übereinstimmt

0
lafama

Gehen Sie davon aus, dass Sie Zugriff auf den SharePoint-Server haben, versuchen Sie Folgendes. Einige zufällige Gedanken und keine bestimmte Reihenfolge.

  • Stellen Sie die Assembly für GAC bereit, oder kopieren Sie die DLL in den Ordner bin Ihrer Webanwendung
  • Fügen Sie die Assembly-Informationen im Abschnitt web.config-Assemblys und im Abschnitt Sichere Steuerelemente hinzu. 
  • Wenn Sie einen Webpart entwickeln, stellen Sie sicher, dass dessen Referenz im Abschnitt "Sichere Steuerelemente" der Webparts hinzugefügt wird (obwohl ich glaube, dass dies nicht Ihr Problem ist).
  • In einigen Fällen kann es hilfreich sein, die Versammlung mit einem starken Namen zu unterzeichnen. 
  • Wenn Sie über benutzerdefinierte Abhängigkeiten verfügen, müssen Sie die gleichen Schritte für alle Abhängigkeiten ausführen (außer .net Framework und SharePoint).

Entwickeln Sie Ihr SharePoint-Projekt (meinen Sie Webpart?) Mit Visual Studio? Verweisen Sie in Ihrem SharePoint-Projekt darauf? Sie müssen uns mehr Details zu Ihrer Entwicklungsumgebung mitteilen, um das Problem erkennen zu können.

0
Ken