![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| MFSham |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: нет Всего: 3 |
Перед загрузкой приложения надо проверять версию одной .dll и если ее версия билда не совподает с версией которая уже задана в программе, то нужно генерить новую.
Чтобы посмотреть версию сборки ее надо загрузить в домен. Но если версии различны, то ее надо заменить. Но она(сборка) уже загружена в домен и выгрузить можно только домен. Соответственно для просмотра версии сборки нужно создать отдельнгый домен, загрузить сборку туда, посмотреть версию, выгрузить домен. Вот что у меня получилось: Класс который получает версию сборки
Проверка версии сборки с программной. Если версии не совподают, то выполняет следующий кусок кода:
Как видно из ошибки сборка еще висит в памяти, т.е. походу метод AppDomain.Unload(anotherDomain) не сработал или я все-таки загружаю сборку в текущий домен? Тогда как будет правильно? Это сообщение отредактировал(а) MFSham - 22.4.2008, 15:17 --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
||||
|
|||||
| MFSham |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: нет Всего: 3 |
Чуть сам разобрался:
Метод DoCallBack будет использоваться по ссылке и сборка будет загружена в текущий домен. Если передавать по значению
то
m_version в теле метода присвоится значение, но за его пределами будет null(видимо т.к. WorkerMethod() испольняется в другом домене) Тогда как вытянуть версию из другого домена? --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
||||||
|
|||||||
| Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 3 Всего: 18 |
У домена вроде есть SetData, GetData.
|
|||
|
||||
| MFSham |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: нет Всего: 3 |
Спасибо за подсказку! А то я уже начал копать в сторону System.Runtime.Remoting.Channels.CrossAppDomainChannel Вот рабочий вариант:
А получить версию соответственно:
Спасибо еще раз Это сообщение отредактировал(а) MFSham - 22.4.2008, 16:55 --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |