2013-07-02 4 views
3

У меня есть проект веб-сайта asp.net. Мне нужно использовать несколько пользовательских dll, которые я не могу скопировать в каталог bin.C# Загрузка dll из PrivateBin

Я пытался создать папку пользовательских бен и установить на Application_Start PrivateBinPath в Global.asax в этот каталог

 


    void Application_Start(object sender, EventArgs e) 
     { 
      AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = Server.MapPath("~/my_DLLS"); 
     } 

затем в моем файле .cs использовать с помощью заявления для включения этой библиотеки, но я получаю Сообщение Ошибка компилятора: CS0246: тип или пространство имен имя «DllName» не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)

Я также пытаюсь добавить assemblyBinding в web.config

 


    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <probing privatePath="my_DLLS" /> 
     </assemblyBinding> 
     </runtime> 

Я чувствую, что что-то упускаю.

+0

Попробуйте переместить весь проект на простой путь доступа, например C: \ Test, никаких пробелов или чего-либо еще и повторите попытку. –

+0

Проект находится на сервере. путь не содержит пробелов. Я могу ссылаться на все dll из каталога bin, но не из моего настраиваемого каталога – VGV

ответ

0

Некоторые мысли

  1. Убедитесь, что ваш частный бин путь в корневом каталоге приложения (код указывает на то, что это - но только подтверждают)

  2. ли частные бин DLLs имеет никаких зависимостей которые отсутствуют в отдельном бункере

  3. Вы можете использовать fusion log viewer, чтобы проверить привязки DLL в своем приложении. Это должно указывать, есть ли связанные или нет

  4. Проверьте права доступа к папке с приватным bin. Ударьте его молотком и дайте всем полный доступ к этой папке. Посмотрите, если это вызвало это.

  5. В качестве временной меры - поместите папку частного bin в качестве подкаталога под папкой bin. Это работает сейчас? Может ли это быть постоянным решением, если оно действительно работает. Может не быть ходьки для вас

Это хороший ответ о подобных проблемах - с хорошей диаграммой, которая может оказаться полезной

How do I reference assemblies outside the bin folder in an ASP.net application?

и конечно же удач

+0

мой собственный каталог bin находится на том же уровне, что и те же самые то же самые разрешения, что и bin. одна из dll - это PdfSharp.dll, я получаю ошибку в этой строке PdfSharp.PdfDocument document = new PdfSharp.PdfDocument(); – VGV

+0

erm - если вы получаете сообщение об ошибке в этой строке, то он точно загружает PdfSharp.dll. Таким образом, это поиск вашего личного бина. Возможно, зависимость. Вы пробовали просмотр журнала слияния. –

+0

как раз и сделал. выглядит хорошо. если я переведу dll из моей пользовательской папки обратно в корзину, все будет работать. Я двигаю его назад, и это не так. Я верю в другую DLL и ту же ошибку. Compiler Error Message: CS0246: Не удалось найти тип или пространство имен имя «FreeTextBoxControls» (вы пропали без вести с помощью директивы или ссылка на сборку?) FreeTextBoxControls.FreeTextBox topicEditor = new FreeTextBoxControls.FreeTextBox(); – VGV

Смежные вопросы