Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл.
Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой .
Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.
Здравствуйте, Camarada, Вы писали:
C>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл. C>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой . C>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.
C>Спасибо за внимание
Вы бы хоть указали систему сборки, шоле. MSBuild, TFS или что?
Re[2]: PrebuildEvent, как правильно подсунуть данные
Здравствуйте, Codechanger, Вы писали:
C>Здравствуйте, Camarada, Вы писали:
C>>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл. C>>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой . C>>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.
C>>Спасибо за внимание
C>Вы бы хоть указали систему сборки, шоле. MSBuild, TFS или что?
MsBuild, через интерфейс VS2008. Проект на С#, .NET 3.5, если интересно почему именно так, перед сборкой собираюсь получать информацию о ревизии проекта в mercurial.
Re[3]: PrebuildEvent, как правильно подсунуть данные
Здравствуйте, Camarada, Вы писали:
C>Здравствуйте, Codechanger, Вы писали:
C>>Здравствуйте, Camarada, Вы писали:
C>>>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл. C>>>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой . C>>>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.
C>>>Спасибо за внимание
C>>Вы бы хоть указали систему сборки, шоле. MSBuild, TFS или что? C>MsBuild, через интерфейс VS2008. Проект на С#, .NET 3.5, если интересно почему именно так, перед сборкой собираюсь получать информацию о ревизии проекта в mercurial.
Напиши получение информации из mercurial скриптом на powershell и вызывай его в PrebuildEvent.
Ingate Development
Re[4]: PrebuildEvent, как правильно подсунуть данные
Здравствуйте, Camarada, Вы писали:
C>Здравствуйте, artem.bikov, Вы писали:
AB>>Напиши получение информации из mercurial скриптом на powershell и вызывай его в PrebuildEvent.
C>Артем, скрипт есть, у меня задача вкрячить эти данные в AssemblyInfo.
Тогда реплейс помоему остается тебе. Ничего стандартного нет.
Ingate Development
Re[6]: PrebuildEvent, как правильно подсунуть данные
Здравствуйте, artem.bikov, Вы писали:
AB>Тогда реплейс помоему остается тебе. Ничего стандартного нет.
Тогда еще такой вопрос.
К примеру, я генерю файл, с описанием класса, содержащего константные строки, которые впоследствии заменяются моими.
Файл будет меняться часто, поэтому не хочется хранить его под контролем версий.
А что если будем собирать на компьютере, куда установлена студия, но не установлен Меркуриал
(скрипт не сгенерит нужный файл, проект не соберется, так как этот файл включен в зависимости)
Можно конечно, генерить некую заглушку (аналогичный файл с No version Info типа), но мне что-то идея не нравится, может еще варианты будут?
Здравствуйте, Camarada, Вы писали:
C>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл. C>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой . C>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.
C>Спасибо за внимание
Сделал генерацию, файла включенного в билдежку, в случае ошибок генерится файл с дефолтным содержимым.
Правда есть одна неприятная проблема, при изменении входных данных для файла версии, первый билд не замечает эти изменения, и данные остаются старые, приходится билдить 2 раза.
Можно ли этого избежать?
Re[7]: PrebuildEvent, как правильно подсунуть данные
Здравствуйте, Camarada, Вы писали:
C>Тогда еще такой вопрос. C>К примеру, я генерю файл, с описанием класса, содержащего константные строки, которые впоследствии заменяются моими. C>Файл будет меняться часто, поэтому не хочется хранить его под контролем версий. C>А что если будем собирать на компьютере, куда установлена студия, но не установлен Меркуриал C>(скрипт не сгенерит нужный файл, проект не соберется, так как этот файл включен в зависимости) C>Можно конечно, генерить некую заглушку (аналогичный файл с No version Info типа), но мне что-то идея не нравится, может еще варианты будут?
При всем понимании того, что ответ немного не по теме.
А Вы не думали заюзать какой-нибудь VisualBuild, CruiseControl.NET или TeamCity ?
Эти инструменты и с системами контроля версий умеют работать, и номерами версий
управлять (например, использовать revision number и build increment).
CruiseControl.NET к тому же бесплатный.
Re[8]: PrebuildEvent, как правильно подсунуть данные
Здравствуйте, okman, Вы писали:
O>Здравствуйте, Camarada, Вы писали:
C>>Тогда еще такой вопрос. C>>К примеру, я генерю файл, с описанием класса, содержащего константные строки, которые впоследствии заменяются моими. C>>Файл будет меняться часто, поэтому не хочется хранить его под контролем версий. C>>А что если будем собирать на компьютере, куда установлена студия, но не установлен Меркуриал C>>(скрипт не сгенерит нужный файл, проект не соберется, так как этот файл включен в зависимости) C>>Можно конечно, генерить некую заглушку (аналогичный файл с No version Info типа), но мне что-то идея не нравится, может еще варианты будут?
O>При всем понимании того, что ответ немного не по теме. O>А Вы не думали заюзать какой-нибудь VisualBuild, CruiseControl.NET или TeamCity ? O>Эти инструменты и с системами контроля версий умеют работать, и номерами версий O>управлять (например, использовать revision number и build increment). O>CruiseControl.NET к тому же бесплатный.
Спасибо, но для этого проекта перенос на системы Build Management делаться не будет.
Он маленький, недостаточно серьезный и фактически закончен, просто вот захотелось внести штришок.
Re[2]: PrebuildEvent, как правильно подсунуть данные
C>>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл. C>>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой . C>>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.
C>>Спасибо за внимание
C>Сделал генерацию, файла включенного в билдежку, в случае ошибок генерится файл с дефолтным содержимым. C>Правда есть одна неприятная проблема, при изменении входных данных для файла версии, первый билд не замечает эти изменения, и данные остаются старые, приходится билдить 2 раза. C>Можно ли этого избежать?
Оказалось это баг MS VS, лечится правкой файла проекта, нужно добавить в первый блок PropertyGroup <UseHostCompilerIfAvailable>FALSE</UseHostCompilerIfAvailable>