Вагиф Абилов (object) wrote,
Вагиф Абилов
object

Маленькая победа

Последние недели мучался с сервером, на котором компилировались общие проекты. Для большинства Си++ и C# программ компиляция и сборка трудностей не представляла, но вот с ASP.NET программами возникли сложности. Проблема в том, что хотя сборка проекта в режиме командной строки не предусматривает размещение исходников на Web-сервере, Visual Studio тупо требует контакта с Web-сервером и в таком режиме. Файлы должны лежать в виртуальном каталоге, простой файловой системы недостаточно (это будет устранено в Visual Studio 2005, но сейчас от этого не легче). Дальше - больше. У разных разработчиков эти ASP.NET проекты на их машинах установлены в разных виртуальных каталогах, это возможно с использованием локальной версии файла типа .webinfo, в который и прописываются локальные настройки. Но при сборке через командную строку webinfo не читается, Visual Studio читает напрямую то, что лежит в solution, и если на сборочном сервере такого виртуального каталога нет, все ломается.

После бесполезных попыток выловить решение в конференциях Microsoft, решил это так. Написал маленькую утилиту с регулярным выражением для разборки URL:

(?:(?http(?:s?)|ftp)(?:\:\/\/))(?:(?\w+\:\w+)(?:\@))?
(?[^/\r\n\:]+)(?::(?\d+))?(?:\/(?(?:.*)*))?\/(?.*?\.(?\w+))?
(?\??(?:\w+\=[^\#]+)(?:\&?\w+\=\w+)*)*(?\#.*)?

Утилита загружает исходный файл (типа .sln), замещает в нем удовлетворяющий регулярному выражению текст на новый (подменяет URL) и сохраняет как временный .sln файл. Новый .sln проект компилируется и удаляется.

Прогнал на сервере, вроде работает.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments