Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Если нет dll, которая указана в using 
V
    Опции темы
Lamya
Дата 14.1.2011, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 22.4.2009

Репутация: нет
Всего: нет



К exe-шнику приложения прилагаются 3 библиотеки. Одна из них указана в перечислении using 
(using System;
using System.Collections.Generic;
using System.Reflection;
using xLib;)
и она в свою очередь не работает без двух других. Необходимо обработать ситуацию отсутствия любой из библиотек.
 Обработка отсутствия двух вспомогательных - таким кодом, здесь вопросов нет.
Код

            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;


Если удалить из каталога саму xLib, то приложение запускается, но в процессе возникает окно исключения

************** Текст исключения **************
System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "xLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" или один из зависимых от них компонентов. Не удается найти указанный файл.
Имя файла: "xLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"

Какой обработчик необходимо написать, чтобы вместо окна появлялось обычное текстовое сообщение, как и где перехватить ошибку?
PM MAIL   Вверх
jonie
Дата 14.1.2011, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Вот это событие обрабатывать: http://msdn.microsoft.com/en-us/library/sy...blyresolve.aspx


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Lamya
Дата 14.1.2011, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 22.4.2009

Репутация: нет
Всего: нет



Спасибо за ответ. Попробовала через код примера, он почему-то отказался извлечь класс из сборки, но сам факт ее отсутствия находил. В итоге сделала еще проще:

Код

try
            {
                Assembly a = Assembly.Load("xLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Запуск программы невозможен");
                return;
            }


Там не нужна сложная система контроля ошибок, только сообщение о том, что не все гладко, так что такой вариант вполне сойдет несмотря на его топорность.

Это сообщение отредактировал(а) Lamya - 14.1.2011, 15:07
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.