Для компиляции вы можете просто инициировать вызов оболочки для компилятора csc.
РЕДАКТИРОВАТЬ: Или еще лучше , используйте CodeDOM, как предложил Нолдорин ...
Вам необходимо ознакомиться с Click Once Deployment .
ClickOnce - это технология развертывания, которая позволяет создавать самообновляющиеся приложения для Windows, которые можно устанавливать и работать с минимальным взаимодействием с пользователем. Visual Studio обеспечивает полную поддержку публикации и обновления приложений, развернутых с помощью технологии ClickOnce, если вы разработали свои проекты с помощью Visual Basic и Visual C #.
При этом создается загружаемый установочный exe-файл, который вы загружаете в Интернет. Пользователь либо запускает это на месте, либо загружает и запускает. Это обертывает ваш exe в код, который будет проверять местоположение в Интернете (с выбранной вами частотой) на наличие обновлений. Если он найдет его, он установит его для пользователя.
Вам не нужно вносить никаких специальных изменений в свой код, чтобы включить это. помимо увеличения номера версии.
Популярным решением является фактически иметь отдельный процесс для замены необходимых файлов.
Вы когда-нибудь замечали, что Firefox должен перезапускаться при каждом обновлении? Это потому, что отдельный процесс (updater.exe) загружает файлы, закрывает firefox, заменяет файлы, а затем снова запускает firefox.
edit , конечно, предполагается, что вы размещаете список обновлений онлайн, который может проверить программа обновления (RSS-канал или даже простой текстовый файл).
Для Windows (обычно из-за того, что Windows блокирует файл .exe во время его выполнения)
Обычно ваше приложение где-то проверяет (обычно на Интернет) регулярно для новых версий. Это может происходить при каждом запуске, или раз в неделю, или еще где-то.
Там вы можете просто поместить, например, текстовый файл, содержащий номер текущей версии. Если это будет новее, чем версия установленного приложения, вы можете загрузить программу обновления (не забудьте подписать и проверить подписи) и установить новую версию.
Пусть ваше приложение время от времени отправляет запросы через Интернет на ваш веб-сервер. Попросите этот запрос вернуть файл, содержащий номер версии и ссылку на новейшую версию вашего установщика. Если этот номер версии больше, чем номер версии, который думает запущенная в данный момент программа, пусть ваша программа загрузит новый установочный файл и запустит его.
Одна идея - у вас может быть приложение-загрузчик, которое проверяет за вас и при необходимости обновляет исполняемый файл главного приложения перед его запуском?
Вы не изменяете текущий .exe.
Вы запускаете отдельный процесс, который загружает новую версию файла. Новая версия заменяет старую версию. Никаких изменений не требуется.
sudo easy_install mysql-python
установит модуль MySQLdb, чтобы вы могли работать с MySQL из Python, или, если вы хотите работать с virtualenv (что вам следует),
sudo easy_install virtualenv virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PIP_VIRTUALENV_BASE=$WORKON_HOME
source /usr/local/bin/virtualenvwrapper_bashrc
mkvirtualenv mysite
pip install mysql-python django
поместит вас в virtualenv с текущая установка django (вы можете указать, какая версия, например, django == 1.1.1) и установленный модуль MySQLdb. Использование virtualenv позволит вам иметь отдельные среды для разных проектов, поэтому вы можете устанавливать разные модули и даже использовать разные версии этих модулей (или Python) для разных проектов. Чтобы оставить вас virtualenv, просто введите команду
deactivate
или, чтобы переключиться на среду 'foo' type
workon foo
Вам также следует, если вы собираетесь использовать virtualenv, добавить эти три строки в свой ~ / .bash_profile (на OS X, ~ / .bashrc обычно в Linux): ClickOnce на самом деле тоже очень хороший метод, возможно, лучше, но дает меньше контроля. Главный исполняемый файл приложения достаточно прост, чтобы избежать его обновления или необходимости обновлять его.
Обычно процесс выглядит следующим образом: