ASP.NET предварительно скомпилировать в одну сборку - PullRequest
3 голосов
/ 09 мая 2011

У меня есть веб-приложение ASP.NET 4.0, которое необходимо предварительно скомпилировать в одну сборку . Я поиграл с доступными опциями и получаю следующее:

1. Когда я компилирую, я получаю отдельную сборку для каждой страницы следующим образом: Multiple assemblies

  1. Когда я компилирую, я получаю единственную сборку веб-приложения, но на работающем сервере каждая страница динамически компилируется и создается временный файл.

Dynamic compiling

  1. Мне нужен способ скомпилировать мое веб-приложение в одну сборку, которая позволяет обновлять пользовательский интерфейс (HTML изменяет не код) и не создает временных файлов.

enter image description here

Ответы [ 3 ]

2 голосов
/ 09 мая 2011

Самый простой способ сделать это - создать (или изменить) свой проект как (или создать) «веб-приложение Asp.Net», а не «веб-сайт Asp.Net».

Это приведет к тому, что ваш проект будет скомпилирован в одну dll, а не в схему «dll на страницу» или «dll на каталог», с которой обычно работают веб-сайты.Это также заставит вас решать любые проблемы с именами типов (например, если у вас есть 6 страниц с именем Default), важно, когда вы создаете одну сборку, в которой полные имена будут уникальными.

Это даст вамправильный файл проекта (скрипт сборки) и выгрузите все свои dll в папку / bin при компиляции.

Затем вы можете использовать что-то вроде ILMerge , чтобы объединить все ваши сборки в /Папка bin в одну DLL, если это то, что вы хотите сделать.Это предполагает, что все ваши ссылки являются управляемыми сборками, если у вас есть какие-либо не .Net-библиотеки, это будет намного сложнее, хотя все еще не невозможно.

0 голосов
/ 09 мая 2011

AFAIK, вы не можете обновить UI / html без перекомпиляции страницы сервером с использованием временных файлов

Все файлы .aspx, .ascx и т. Д. Преобразуются в исходный код и затем компилируются.Единственный метод, который ASP.NET предоставляет для предотвращения, это также компилировать страницы и элементы управления, но тогда ваш сайт больше не будет обновляться.В этом случае вам всегда нужно будет повторно развертывать двоичные файлы для каждого обновления.

По какой-то конкретной причине вы не хотите, чтобы ASP.NET генерировал временные файлы?Я думаю, что это вполне приемлемая практика.

0 голосов
/ 09 мая 2011

Компилятор aspnet включен в фреймворк. Вот страница, описывающая, как ее использовать. http://msdn.microsoft.com/en-us/library/ms227972.aspx

Вот некоторые дополнительные страницы для справки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...