web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly '' ou l'une de ses dépendances

Toute aide s'il vous plaît?

Je n'ai qu'une bibliothèque et cela me rend folle. C’est l’erreur que je reçois .

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

Problème résolu!

Je pensais que Visual Studio copiait la DLL dans le GAC, mais apparemment pas. Alors je l'ai copié là manuellement et ça marche. 

Une question cependant: est-il normal que Visual Studio ne le copie pas dans le GAC lorsque je déploie l’application sharepoint?

Pour ceux qui voudraient savoir comment copier la dll dans GAC

il existe deux manières de copier la DLL vers GAC:

  1. copier la dll manuellement

    1. Ouvrez le répertoire c:\windows\Assembly dans l'Explorateur Windows.
    2. Ouvrez une autre instance de Windows Explorer et accédez à l'emplacement où se trouve votre dll, Généralement dans le dossier bin. (maintenant vous aurez deux fenêtres ouvertes)
    3. sélectionnez la dll que vous souhaitez copier sur gac et faites-la glisser dans le répertoire Assembly, c:\windows\Assembly
  2. utilisez VS pour le déployer pour vous au GAC.

    1. dans votre projet sharepoint, double-cliquez sur "Package".
    2. Package.Package va s'ouvrir. Regardez en bas à gauche de votre écran et cliquez sur "Avancé", 
    3. puis cliquez sur "Ajouter", puis sélectionnez "Ajouter un assemblage à partir de la sortie du projet ...". 
    4. Dans la liste déroulante Projet source, sélectionnez le projet, puis cliquez sur OK. 
    5. enfin, déployez la solution et la DLL sera dans le GAC.

merci pour votre soutien.

16
Imir Hoxha

Pour que Visual Studio ajoute un assemblage tiers ou même votre propre assemblage à partir d'un autre projet en solution pour GAC, procédez comme suit:

  1. Ouvrez Package.package à partir du dossier Package dans un projet SharePoint.

  2. Cliquez sur Avancé dans la zone inférieure.

  3. Cliquez sur Ajouter et choisissez le type d'assemblage que vous souhaitez ajouter.

  4. Dans la boîte de dialogue, sélectionnez le fichier dll, le chec GAC ou le BIN, ajoutez des contrôles sécurisés et des entrées de ressources de classe Si nécessaire. Cliquez sur OK.

Votre assembly sera packagé pour WSP, défini dans manifeste et déployé à chaque fois.

28
Oleg Savelyev

Pour les assemblys ne figurant pas dans GAC et auxquels il est fait référence dans la construction, cette erreur se produit parfois également si la cible de la plate-forme ne correspond pas. Donc, associez le type de plate-forme Assembly à celui où il est utilisé.

 enter image description here

1
Giri

Si erreur survient lorsque publishing dans Visual Studio 2012 désactive l'option "Précompiler lors de la publication" dans l'assistant de publication, puis réessayez.

Un-check the "Precompile during publishing" box

0
SushiGuy
  • Le numéro de version correspond-il?
  • C'est bizarre de voir que vous essayez de charger un fichier .lib au lieu d'une dll. Peut-être que vous vouliez charger une DLL à la place?
  • Pour résoudre ce type de problèmes, essayez Fusion Logging
  • Vous dites que vous utilisez une seule bibliothèque, mais cette bibliothèque peut avoir des dépendances dont vous ignorez l'existence. Cette SO question traite de la liste des dépendances d’un assemblage .NET géré.
0
dario_ramos

pour les gars qui se penchent toujours sur cette question, il faut que vous sachiez bien qu'il existe différents GACutils, vous devez donc vous assurer que vous utilisez le bon GACUTIL pour déployer le DLL afin de le corriger. 

par exemple, si ma dll était conforme à la structure 3.5 .net et à la version 64 bits de mon système d'exploitation, elle se trouverait à l'emplacement ci-dessous. 

C:\Program Files (x86)\SDK Microsoft\Windows\v7.0A\Bin\x64

J'ai eu du mal à comprendre cela pendant 4 jours stupides 

0
mps

Si vous utilisez le code Page.Load ("chemin_contrôle ..."). assurez-vous que le fichier ascx actuel que vous chargez ne contient aucune directive incluant l'assembly de votre message d'exception 

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

Essayez de ne pas faire référence à la DLL, puis faites-la à nouveau et reconstruisez votre projet. Vérifiez également que la version correspond à ce qui se trouve dans la configuration Web du projet.

0
lafama

En supposant que vous ayez accès au serveur SharePoint, essayez ce qui suit. Quelques pensées aléatoires et aucun ordre spécifique.

  • Déployez l'assembly sur GAC ou copiez la dll dans le dossier bin de votre application Web
  • Ajoutez les informations d'assemblage dans votre section d'assemblys web.config et dans la section des contrôles sécurisés. 
  • Si vous développez un composant WebPart, veillez à ajouter sa référence dans la section Contrôles sécurisés des composants WebPart (bien que je ne pense pas que ce soit votre problème).
  • Signer l’Assemblée avec un nom fort pourrait aider dans certains cas. 
  • Si vous avez des dépendances personnalisées, vous devez suivre les mêmes étapes pour toutes les dépendances (autres que la structure .net et les relations avec SharePoint).

Développez-vous votre projet SharePoint (voulez-vous dire une partie Web?) À l'aide de Visual Studio? Est-ce que vous le référencez dans votre projet SharePoint? Vous devez nous donner plus de détails sur votre environnement de développement pour pouvoir identifier le problème.

0
Ken