Публиковать веб-приложение asp.net в отдельных файлах

У меня есть ASP.NET WebApplication (не веб-сайт), который был написан на C#.

Я хочу опубликовать и развернуть это приложение для более чем 50 сайтов на моем сервере. Я бы предпочел сделать несколько библиотек DLL и поместить их в GAC моего сервера, чтобы все сайты использовали библиотеки DLL из GAC, а затем я могу обновить все свои сайты, просто заменив некоторые библиотеки DLL в GAC.

Когда я публикую свое приложение, я получаю одну dll для всех файлов.cs, но все файлы.aspx остаются. Я хочу объединить.aspx файлы в одну сборку тоже.

Есть ли способ или какая-то другая идея для моего случая?

2 ответа

Решение

В свойствах вашего веб-проекта:

пакет / публиковать веб

check - предварительно скомпилировать это приложение перед публикацией

дополнительно - объединить весь вывод в одну сборку

Когда вы переходите к настройкам публикации, есть опция "сделать сайт обновляемым", если вы снимите галочку, что весь код cs будет объединен в app_web.dll.

У вас все еще будут все отдельные страницы aspx, так как они определяют точку входа в код. Насколько мне известно, единственный способ объединить их - скопировать / вставить все отдельные страницы aspx в default.aspx и обернуть их <asp:Panel ID="HomePage" Runat="Server" Visible="False"> и затем установите правую панель, видимую в Page_Load, в зависимости от QueryString. Вы можете использовать переписывание URL, чтобы получить хорошие URL.

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

Другой вариант, возможно, заключается в том, чтобы просто разместить приложение на поддомене и создать его там, где это необходимо. Это может быть невозможно из-за проблем с несколькими источниками, в зависимости от ваших настроек, но это будет более "чистый" способ работы.

Надеюсь, это помогло.

Другие вопросы по тегам