Kan bestand of assembly '' of een van de afhankelijkheden ervan niet laden

Hulp alstublieft?

Ik heb maar één bibliotheek en het maakt me gek. dit is de fout die ik ontvang. Ik gebruik geen andere dependancies.

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

9 antwoord

Als u wilt dat Visual Studio assembly's van derden of zelfs uw eigen assembly van een ander project in oplossing naar GAC toevoegt, doet u het volgende:

  1. Open Package.package vanuit de map Pakket in SharePoint-project.

  2. Klik onderaan op Geavanceerd op Geavanceerd.

  3. Klik op Toevoegen en kies het type assembly dat u wilt toevoegen.

  4. Selecteer in het dialoogvenster dll-bestand, chec GAC of BIN, voeg veilige besturingselementen toe en class resources-items indien nodig. Klik op OK.

Uw assembly wordt verpakt naar WSP, elke keer gedefinieerd in manifest en geïmplementeerd.

28
toegevoegd
Je bent een redder in leven! Erg bedankt!
toegevoegd de auteur Bear, de bron

Probleem opgelost!

Ik dacht dat Visual Studio de DLL naar de GAC kopieerde, maar blijkbaar niet. Dus ik heb het handmatig gekopieerd en het werkt.

Een vraag echter, is dit normaal dat de visuele studio het niet naar de GAC kopieert wanneer ik de sharepoint-applicatie implementeer?

Voor degenen die willen weten hoe de dll naar GAC moet worden gekopieerd

er zijn twee manieren om de dll naar GAC te kopiëren:

1) copy the dll manually

a)Open c:\windows\assembly directory in windows explorer
b)Open another instance of windows explorer and go to the place where your dll is located, 
usually in the bin folder. (so now you will have two windows open)
c)select the dll you would like to copy to gac and drag it inside the assembly directory, c:\windows\assembly


2) use VS to deploy it for you to GAC.
a) in your sharepoint project double click on "Package".
b) Package.Package will open. Look bottom left of your screen and click on "Advanced", 
c) then click on "Add", then select "Add Assembly from project output...". 
d) In the Source project dropdownlist select the project and then click OK. 
e) finally deploy the solution and the dll will be in the GAC.

bedankt voor je ondersteuning.

16
toegevoegd
Opmerking: raak de map Windows \ Assembly nooit aan, handmatig kopiëren is een ZEER SLECHT IDEE. Gebruik gacutil/i om het DLL-bestand en gacutil/u te installeren om het te verwijderen./i neemt het volledige pad terwijl/u de dll-naam neemt zonder de extensie.
toegevoegd de auteur David, de bron
je zou je eigen antwoord moeten accepteren!
toegevoegd de auteur Nacht, de bron
als je wilt dat de visuele studio dit doet, zorg er dan voor dat je de eigenschap 'copy local' van de verwijzing naar waar instelt
toegevoegd de auteur Daniël Tulp, de bron
  • Does the version number match?
  • It's weird to see you're trying to load a .lib file instead of a dll. Perhaps you wanted to load a dll instead?
  • To debug this kind of problems, try Fusion Logging
  • You say you're using only one library, but that library might have some dependencies you're not aware of. This SO question deals with listing the dependencies of a managed .NET assembly.
0
toegevoegd
Dat is niet het probleem. Ik zou fusion logging proberen
toegevoegd de auteur dario_ramos, de bron
Er moet iets mis zijn met uw Sharepoint-projectconfiguratie. Ik weet niet veel over Sharepoint, maar je zou wel eens willen weten hoe dll opzoeken in Sharepoint werkt
toegevoegd de auteur dario_ramos, de bron
Heb je fusion logging geprobeerd? Omdat het alle laadbeurten van .NET-assembly's registreert, zal het u alle locaties vertellen waar Sharepoint de dll probeert te vinden, en als het een afhankelijkheid ding is, zal het vertellen wat er ontbreekt. Sterke naamvalidatie kan, als u het gebruikt, ook problemen met het laden veroorzaken.
toegevoegd de auteur dario_ramos, de bron
Hallo Dario_ramos, ik laad een dll maar de naam van de assembly is FOD.Intranet.Lib.dll
toegevoegd de auteur Imir Hoxha, de bron
Ik heb een demolibrary gemaakt met een enkele methode die twee getallen bij elkaar optelt en ik verwijs ernaar vanuit een sharepoint-project. Ik kreeg dezelfde fout als hierboven. Nu, toen ik een asp.net-project gebruikte, werkte het prima. het klaagt niet over de dll.
toegevoegd de auteur Imir Hoxha, de bron
Bedankt Dario voor uw hulp. Ik zal er verder in kijken, maar het maakt me gek.
toegevoegd de auteur Imir Hoxha, de bron
Ik open het, maar ik heb nog niet ontdekt hoe het werkt.
toegevoegd de auteur Imir Hoxha, de bron

Als u de code Page.Load gebruikt ("control_path ..."). zorg ervoor dat het daadwerkelijke ascx-bestand dat u laadt, geen instructies bevat die de assembly uit uw uitzonderingsbericht bevatten

<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
0
toegevoegd
Hallo maks, ik gebruik de import-instructie in de gebruikerscontrole. Ik moet toegang hebben tot de bibliotheek in .ascx-bestand.
toegevoegd de auteur Imir Hoxha, de bron
Wanneer ik een verwijzing naar de assembly toevoeg, zie ik dat Visual Studio het naar de map Bin kopieert en ik zie het in de map met referenties in de visuele studio. Wat doe ik verkeerd?
toegevoegd de auteur Imir Hoxha, de bron
Dus dit IS eigenlijk een afhankelijkheid. Je moet deze bibliotheek (FOD.Intranet.Lib) in de oplossing plaatsen. Laat het me weten als je hulp nodig hebt bij het toevoegen van een aangepaste assembly aan een wsp.
toegevoegd de auteur Maks Matsveyeu, de bron
Bekijk dit artikel alstublieft. blog.mastykarz.nl/… het heeft een stapsgewijze handleiding voor het toevoegen van een assembly aan een pakket. jouw zaak is eenvoudiger. u moet EEN BESTAANDE ASSEMBLAGE toevoegen in plaats van PROJECT UITVOER. en controleer de DEPLOYMENT TARGET op GAC. En u hoeft geen SafeControls toe te voegen.
toegevoegd de auteur Maks Matsveyeu, de bron

Probeer de DLL onherkenbaar te maken en verwijs hem opnieuw en herbouw je project. Controleer ook of de versie overeenkomt met wat zich in de webconfiguratie van het project bevindt

0
toegevoegd
Hallo Lafama, bedankt voor je antwoord. Ik volg het en verwijs ernaar opnieuw maar het werkt niet. In de webconfig moet ik de klassenbibliotheek dll zien of het project dat de dll gebruikt? Ik heb de enige verwijzing naar deze naamruimte FOD.Intranet.Lib niet gevonden in de webconfiguratie.
toegevoegd de auteur Imir Hoxha, de bron

Ervan uitgaande dat u toegang hebt tot de SharePoint-server, probeert u het volgende. Enkele willekeurige gedachten en geen specifieke volgorde.

  • Implementeer de assembly in GAC of kopieer de dll naar de bin-map van uw webtoepassing
  • Voeg de verzamelinformatie toe aan uw web.config-assembly's en in het gedeelte Veilige besturingselementen.
  • Als u een webonderdeel aan het ontwikkelen bent, moet u ervoor zorgen dat u de referentie toevoegt in het gedeelte Veilige bedieningselementen van de webonderdelen (hoewel ik niet denk dat dit uw probleem is)
  • Het ondertekenen van de assembly met een sterke naam kan in sommige gevallen helpen.
  • Als u aangepaste afhankelijkheden hebt, moet u dezelfde stappen volgen voor alle afhankelijkheden (anders dan .net framework en SharePoint-gerelateerd)

Ontwikkelt u uw SharePoint-project (bedoelt u webpart?) Met behulp van Visual Studio? Refereert u ernaar in uw SharePoint-project? U moet ons meer informatie geven over uw ontwikkelomgeving om het probleem te kunnen lokaliseren.

0
toegevoegd

Als er een fout optreedt bij het publiceren in Visual Studio 2012 vink dan de optie "Precompileren tijdens publicatie" uit in de publicatiewizard en probeer het opnieuw.

Un-check the

0
toegevoegd

voor jongens die dit onderwerp nog steeds onderzoeken, is een ding dat je moet weten dat wel er zijn verschillende GACutils die er zijn, dus u moet ervoor zorgen dat u de juiste GACUTIL gebruikt om de DLL te implementeren om de GAC te corrigeren

voor bijvoorbeeld: als mijn dll werd nageleefd in 3.5 .net framework en mijn OS-versie 64 bit-vensters was, zou deze zich onder de locatie bevinden

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

Worstelden vier dagen achter elkaar om erachter te komen

0
toegevoegd

Voor samenstellingen die niet in GAC zijn en waarnaar wordt verwezen in de build, gebeurt deze fout soms ook als het platformdoel niet overeenkomt. Dus zorg ervoor dat het type assemblageplatform overeenkomt met het type waarop het wordt gebruikt.

enter image description here

0
toegevoegd