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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распространять dll вместе с сайтом 
:(
    Опции темы
cupper
Дата 22.10.2010, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть сайт, гдето в нутри в одном из классов происходит загрузка dll-ки, если она лежит в /windiws/system32 то все нормально. НО dll стороняя, чтобы она появилась в system32 ее туда нужно положить. Поэтому нужно эту dll-ку хранить вместе с сайтом и чтобы при билде она автоматом в релиз добавлялась а не просто лежала там мертвым грузом. Как такое реализовать ?

Как получить путь расположения проекта из класса реализованного в App_Code (что бы указать в LoadLibrary путь до ddl-ки) ?
По пробовал делать так System.Windows.Forms.Application.StartupPath но это возвращает путь (на локальной машине) не того чего было нужно (C:\Windows\Microsoft.NET\Framework\v2.0.50727). На страничках asсx.cs есть метод Request.PhysicalApplicationPath, возвращает как раз то, нужно чтото аналогичное.
PM MAIL   Вверх
Любитель
Дата 23.10.2010, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Server.MapPath("~/App_Data").
Но вообще таскать нативные длл - это bad practice.


--------------------
PM MAIL ICQ Skype   Вверх
1stain
Дата 23.10.2010, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



  •  кладешь сборки сюда 
    asp.net web site bin folder
    загружаешь через Assembly.Load без указания пути
  • сборки, исходники которых лежат в App_Code загружать руками не надо.
    MSDN


Это сообщение отредактировал(а) 1stain - 23.10.2010, 10:55


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
cupper
Дата 25.10.2010, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Любитель @ 23.10.2010,  02:09)
Server.MapPath("~/App_Data").
Но вообще таскать нативные длл - это bad practice.

через час поисков я этот способ в итоге и нашел )) Но увы не сложилось, одна dll нормально загрузилась, другая грузиться только если  в System32/ лежит. 

На счет Assembly.Load, dll загружались при помощь
Код

[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        private static extern int LoadLibrary(string fileName);

так что нужно чтобы они просто лежали, а не самому их загружать. 

PS. "нативные длл - это bad", кто бы спорил, но на фоне всего проекта эта проблема меркнет )) и почти незаметна.

Это сообщение отредактировал(а) cupper - 25.10.2010, 09:35
PM MAIL   Вверх
Любитель
Дата 26.10.2010, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(cupper @  25.10.2010,  09:34 Найти цитируемый пост)
другая грузиться только если  в System32/ лежит. 

Ну.. надо смотреть, в чём причина на самом деле. Виндовому лоадеру точно пофигу. В чём причина - точно нельзя сказать. Что значит "не загрузилась"? LoadLibrary что вернуло?


--------------------
PM MAIL ICQ Skype   Вверх
Freyzer
Дата 26.10.2010, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


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

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



Извините за вмешательство, но не понимаю, во первых, какая проблема, запихнуть либрари в ядро системы? При условии, что она не пишеться в реестр и не конфликтует с ком объектами ?


--------------------
Advocatus Dei smile. Advocatus Diaboli smileAjo!   
PM MAIL   Вверх
Любитель
Дата 26.10.2010, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



1. xcopy деплоить не получится.
2. Большинство хостеров (если это не дедикейтед сервер) не разрешат. Хотя, у большинства и для .Net-кода пермиссии невысокие, так что DllImport может не работать в принципе.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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