Как вы компилируете модификацию файла cs на развернутом веб-сайте? Возможно ли это?

#asp.net

#asp.net

Вопрос:

Если об этом спрашивали раньше, я прошу прощения.

Если бы у меня был развернутый в данный момент ASP.Net Веб-сайт C #, на котором была небольшая ошибка или модификация, необходимая в файле cs, можно ли изменить файл cs и заставить IIS перекомпилировать ASP.Чистый веб-сайт вместо использования Visual Studio или SharpDevelop для перестройки сайта?

Я знаком с веб-сайтами PHP, где изменение компилируется автоматически. Есть ли способ получить ASP.Net или IIS, чтобы сделать что-то похожее на файлы с кодом ASP.Чистый веб-сайт?

Я понимаю, что изменение файла web.config может привести к перекомпиляции, а изменение файлов ASPx автоматически отображает изменения, но я не нашел такого же успеха в коде, лежащем в основе файлов.

Спасибо.

Редактировать (ответ ниже):

Команда для перекомпиляции существующего ASP.Веб-сайт Net, использующий существующие источники (включая файл решения), это:

 %windir%microsoft.netframeworkv4.0.30319msbuild /m Solution.sln /p:Configuration=Debug
@IF %ERRORLEVEL% NEQ 0 GOTO err
@exit /B 0
:err
@PAUSE
@exit /B 1
  

Вставьте приведенный выше код в командный файл в каталоге вашего решения. Измените решение.sln в вашем файле решения измените фреймворк, чтобы он соответствовал вашей установленной версии. Вы также можете изменить параметр конфигурации на «Release».

* Код пакетного файла, используемый из исходного кода SharpDevelop. Идея, основанная на этом сообщении на форуме: http://community.sharpdevelop.net/forums/t/8281.aspx

Ответ №1:

Команда для перекомпиляции существующего ASP.Веб-сайт Net, использующий существующие источники (включая файл решения), это:

 %windir%microsoft.netframeworkv4.0.30319msbuild /m Solution.sln /p:Configuration=Debug
@IF %ERRORLEVEL% NEQ 0 GOTO err
@exit /B 0
:err
@PAUSE
@exit /B 1
  

Вставьте приведенный выше код в командный файл в каталоге вашего решения. Измените решение.sln в вашем файле решения измените фреймворк, чтобы он соответствовал вашей установленной версии. Вы также можете изменить параметр конфигурации на «Release».

* Код пакетного файла, используемый из исходного кода SharpDevelop. Идея, основанная на этом сообщении на форуме: http://community.sharpdevelop.net/forums/t/8281.aspx

Ответ №2:

Если вы развертываете веб-сайт как файлы .aspx и .cs, он компилируется автоматически всякий раз, когда вы добавляете туда более новый файл. Он компилируется, когда первый веб-клиент что-то запрашивает. Я часто использую эту функцию для своих некоммерческих веб-сайтов, потому что гораздо быстрее загрузить один файл, чем повторно развернуть весь веб-сайт с нуля.

Комментарии:

1. Наряду с этим: если вы развернули скомпилированный сайт (т. Е.: Имеет каталог bin, где код компилируется в сборки), вы можете просто развернуть обновленную сборку.

2. Что, если вы решите изменить существующий cs-файл? Перекомпилирует ли IIS его? Я не обнаружил, что это правда. — @Chris, что касается скомпилированной сборки, я, возможно, не дал понять, что у меня не будет VS или SharpDevelop для перестройки сайта.

3. Гречка: Да, она перекомпилируется при каждом изменении файла cs. Не волнуйтесь. 🙂

4. Al: После некоторого тестирования я не смог проверить то, что вы сказали. Я продолжу проверять, смогу ли я принудительно перекомпилировать, но изменение файлов cs не имело никакого эффекта.

5. Ал, да, они продолжали работать со старым файлом, потому что сайт не был перекомпилирован IIS. Это может быть неправильная настройка в IIS или web.config, но я видел те же результаты в IIS 5, 6 и 7. Я добавил решение к исходному вопросу, которое сработало для меня.

Ответ №3:

ASP.net работает совершенно иначе, чем то, как tath работает с PHP

  • PHP интерпретируется чисто как javascript
  • ASP.net компилируется на среднем языке и позже интерпретируется как Java

код, лежащий в основе кода, компилируется в dll и интерпретируется ASP VM на вашей веб-странице; как этот код компилируется в DLL, вы можете добавлять исправления «на лету», как PHP, вам нужно повторно открыть проект и перекомпилировать веб-проект, если вы этого не сделаете, удалите веб-приложение и удалите его.переустановите новый.

скомпилируйте проект с исправлениями ошибок в режиме выпуска, скопируйте dll вашего основного проекта с именем [название вашего проекта].dll и скопируйте в папку bin внутри папки вашего приложения на веб-сервере… это должно сработать… если не перекомпилируйте и не удалите / установите ваше приложение снова…

извините, но это одна из недостатков этой plataform

Комментарии:

1. Спасибо. Этот ответ в значительной степени подтвердил мои выводы. Таким образом, после компиляции веб-сайта в DLL вам придется использовать VS и открыть решение, а затем перестроить решение, чтобы увидеть изменения. Это затрудняет модификацию клиентских проектов.

2. Обратите внимание, что вы МОЖЕТЕ предварительно скомпилировать веб-сайт, но это не обязательно. Если вы ожидаете, что вам нужно будет внести изменения, вы можете развернуть веб-сайт в исходном виде, и тогда он будет работать как PHP — хотя он скомпилирован, вы можете изменить определенные файлы позже, и он будет перекомпилирован автоматически.

3. Я добавил решение к исходному вопросу. Спасибо за вашу помощь.

4. @Al Kepp я заинтригован вашим комментарием, объясненным более подробно

5. Рафаэль, что тебе нужно знать? Вы можете развернуть asp.net веб-сайт «как есть» — просто возьмите все исходные файлы «как есть» и поместите их на веб-сервер, включая все каталоги. Вам не нужно ничего компилировать, asp.net будет компилировать сам сайт, когда это необходимо. Затем вы можете изменить любой исходный файл, и он автоматически перекомпилируется. Вот как asp.net работал с версии 1, когда предварительная компиляция была даже невозможна.