Не удалось загрузить файл или сборку '' или одну из ее зависимостей - PullRequest
17 голосов
/ 07 декабря 2011

Любая помощь, пожалуйста?

У меня есть только одна библиотека, и она сводит меня с ума. это ошибка, которую я получаю. Я не использую никаких других зависимостей.

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

Ответы [ 9 ]

28 голосов
/ 08 декабря 2011

Чтобы Visual Studio добавил стороннюю сборку или даже собственную сборку из другого проекта в решение для GAC, выполните следующие действия:

  1. Откройте Package.package из папки Package в проекте SharePoint.

  2. Нажмите Дополнительно в нижней области.

  3. Нажмите кнопку «Добавить» и выберите тип сборки, которую хотите добавить.

  4. В диалоговом окне выберите файл dll, проверьте GAC или BIN, добавьте безопасные элементы управления и записи ресурсов класса, если требуется. Нажмите Ok.

Ваша сборка будет упакована в WSP, определяется в манифесте и развертывается каждый раз.

16 голосов
/ 08 декабря 2011

Проблема решена!

Я думал, что Visual Studio копирует DLL в GAC, но, видимо, нет.Поэтому я скопировал его туда вручную, и он работает.

Хотя один вопрос, это нормально, что Visual Studio не копирует его в GAC при развертывании приложения sharepoint?

Для тех, кто хотел бы знать, как копироватьDLL в GAC

Есть два способа скопировать DLL в GAC:

  1. скопировать DLL вручную

    1. Открыть cКаталог: \ windows \ assembly в проводнике Windows
    2. Откройте другой экземпляр проводника Windows и перейдите к месту, где находится ваша dll, обычно в папке bin.(теперь у вас будет два открытых окна)
    3. выберите dll, который вы хотите скопировать в gac, и перетащите его в каталог сборки, c: \ windows \ assembly
  2. используйте VS, чтобы развернуть его для вас в GAC.

    1. в вашем проекте sharepoint дважды щелкните «Package».
    2. Package.Package откроется.Посмотрите в левом нижнем углу экрана и нажмите «Дополнительно»,
    3. , затем нажмите «Добавить», затем выберите «Добавить сборку из вывода проекта ...».
    4. В раскрывающемся списке «Исходный проект» выберите проект и нажмите «ОК».
    5. наконец разверните решение, и dll будет в GAC.

спасибо за вашу поддержку.

1 голос
/ 21 апреля 2016

Для сборок, не входящих в GAC и упоминаемых в сборке, иногда эта ошибка также возникает, если цель платформы не совпадает Поэтому сопоставьте тип платформы сборки с той, где она используется.

enter image description here

0 голосов
/ 18 сентября 2015

для парней, которые все еще изучают эту проблему, вам нужно знать одну вещь: существуют разные GACutils, поэтому вам нужно убедиться, что вы используете правильный GACUTIL для развертывания DLL, чтобы исправить GAC

, например,: если моя dll была выполнена в 3.5 .net framework и моя версия ОС была для 64-битных окон, она бы находилась ниже:

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

Пытался 4 глупых дня, чтобы понять это

0 голосов
/ 25 октября 2013

Если ошибка возникает при публикации в Visual Studio 2012 , снимите флажок «Прекомпилировать во время публикации» в мастере публикации и повторите попытку.

Un-check the

0 голосов
/ 07 декабря 2011

Если вы используете код Page.Load ("control_path ..."). убедитесь, что в самом загружаемом вами ascx-файле нет директив, включающих сборку из вашего сообщения об исключении

<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
0 голосов
/ 07 декабря 2011

Предполагая, что у вас есть доступ к серверу SharePoint, попробуйте следующее. Несколько случайных мыслей и без определенного порядка.

  • Разверните сборку в GAC или скопируйте dll в папку bin вашего веб-приложения
  • Добавьте информацию о сборке в раздел сборок web.config и в раздел безопасных элементов управления.
  • Если вы разрабатываете веб-часть, обязательно добавьте ее ссылку в раздел безопасных элементов управления веб-частей (хотя я не думаю, что это ваша проблема)
  • В некоторых случаях может помочь подписание сборки со строгим именем.
  • Если у вас есть пользовательские зависимости, вам нужно выполнить те же шаги для всех зависимостей (кроме .net framework и SharePoint)

Вы разрабатываете свой проект SharePoint (вы имеете в виду веб-часть?) С использованием Visual Studio? Вы ссылаетесь на это в своем проекте SharePoint? Вы должны предоставить нам более подробную информацию о вашей среде разработки, чтобы точно определить проблему.

0 голосов
/ 07 декабря 2011

Пожалуйста, попробуйте отослать ссылку на DLL, затем снова сослаться на нее и пересобрать проект. Также убедитесь, что версия соответствует содержимому веб-конфигурации проекта

.
0 голосов
/ 07 декабря 2011
  • Соответствует ли номер версии?
  • Странно видеть, что вы пытаетесь загрузить файл .lib вместо dll.Возможно, вы хотели вместо этого загрузить dll?
  • Для устранения подобных проблем попробуйте Fusion Logging
  • Вы говорите, что используете только одну библиотеку, но эту библиотекуможет иметь некоторые зависимости, о которых вы не знаете. Этот вопрос SO связан со списком зависимостей управляемой сборки .NET.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...