Развертывание подключаемых модулей sitefinity без копирования dll

Вот некоторая предыстория.

Если нам нужны пользовательские модули и виджеты для Sitefinity CMS, мы можем

  1. встройте модуль непосредственно в проект SitefinityWebApp (используя расширение Thunder)
  2. Создайте подключаемые dll (как для модулей, так и для виджетов) и сделайте их самоустанавливающимися. 20 марта/создание самоустанавливающихся виджетов и модулей на сайтеfinity" rel="nofollow">http://www.sitefinity.com/blogs/peter-marinovs-blog/2013/03/20/ создание-самостоятельной-установки-виджетов-и-модулей-на-сайте)

подключаемые модули можно просто скопировать в папку bin на экземпляре sitefinityWebApp, и все будет установлено автоматически.

(это происходит путем подключения к событию запуска PreApplication и установки нужного нам модуля и виджета)

Вопрос:

Что у нас нет доступа к серверу? Можете ли вы объединить эти DLL в zip-файл и импортировать его на серверный веб-сайт экземпляра SiteFinity? Распаковывает ли он файл и копирует все dll в каталог bin? Думаю, нет.

Как развернуть сторонние модули и виджеты в экземпляре sitefinity без необходимости вручную копировать dll в папку bin?

пожалуйста, оставьте мне комментарий, если вам нужна дополнительная информация.

Любая помощь приветствуется. Спасибо.


person pskk    schedule 28.10.2013    source источник
comment
Я не знаю, как загрузить dll в папку bin через веб-сайт; как только вы попытаетесь это сделать, приложение перезапустится (по крайней мере, я так понимаю). dll должны быть загружены через FTP RDP или какой-либо другой механизм развертывания. Я полагаю, вы могли бы загрузить их в папку и загрузить их с помощью Reflection, но я не думаю, что это то, что вы ищете. насколько я знаю, dll должны быть опубликованы.   -  person SelAromDotNet    schedule 30.10.2013


Ответы (1)


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

Теперь о вашем вопросе. Пробовали ли вы использовать новую функцию Sitefinity Thunder Code Deploy? Вы можете использовать его, чтобы зарегистрировать их вручную, или вы можете использовать его только для копирования ваших сборок и предоставления им возможности зарегистрировать свои собственные модули, что, на мой взгляд, является лучшим вариантом. Вы можете использовать методы Install/Upgrade/Initialize модуля, чтобы установить или зарегистрировать все, что требуется вашему пользовательскому модулю. Обратите внимание, что для развертывания кода требуется лицензия Site Sync.

Если у вас нет лицензии Site Sync, вам потребуется скопировать сборки вручную.

person Marin Atanasov    schedule 30.10.2013
comment
Это и есть мое понимание. Но учитывая, что у нас нет доступа к серверу (и базе данных), я не думаю, что даже синхронизация сайта может помочь. Все, что у нас есть, это учетные данные администратора для xxxCompany.com/Sitefinity. Один из способов может состоять в том, чтобы иметь отдельный виджет администратора, который в основном является загрузчиком файлов ... и через который мы можем загружать dll, содержащие новые модули и виджеты, и копировать их в папку bin (конечно, проверьте их, чтобы убедиться, что они законны) .. и позвольте dll сделать волшебство самостоятельной установки. Звучит правильно? - person pskk; 30.10.2013
comment
Я не говорил о синхронизации сайта. Это новая функция Sitefinity Thunder, для которой требуется та же лицензия. Если на сервере установлен модуль Sitefinity Thunder, он будет делать то же самое. Вы открываете свое локальное решение, содержащее проект с модулем, и используете Thunder для подключения к удаленному серверу. Он создаст проект, возьмет его сборку и отправит ее в папку ~/bin на удаленном сервере. Вы можете сделать то же самое, что вы описали, но обязательно проверьте это должным образом. Внесение изменений в папку ~/bin должно привести к перезапуску приложения. - person Marin Atanasov; 30.10.2013
comment
Ok. Я понял теперь. Я смешал 2 ответа, которые получил. Спасибо, что помогает. Но не уверен, сможем ли мы получить новую функцию Thunder, если она будет стоить больше денег :). Спасибо Вам за информацию. А также, что вы думаете о подходе с виджетом загрузчика файлов (Assembly Manager), который делает то же самое, что и модуль Thunder. На самом деле я сделал POC, и он отлично работает ... какие-либо комментарии по этому поводу? - person pskk; 30.10.2013
comment
Как я уже сказал - проверьте это должным образом. И имейте в виду 3 вещи: 1) Используйте разрешения для ограничения доступа. Вероятно, вы не хотите, чтобы все могли его использовать. 2) Это может привести к перезапуску вашего приложения. Вы не должны использовать его легкомысленно на рабочем сервере, особенно в часы пик. 3) Плохая идея использовать его, если вы используете NLB, потому что вам нужно будет загружать на каждый сервер отдельно. Кроме этого, все должно быть в порядке, если пул приложений IIS имеет доступ на запись к папке ~/bin. Удачи, и я надеюсь, что я был полезен! :) - person Marin Atanasov; 30.10.2013