PrebuildEvent, как правильно подсунуть данные
От: Camarada Россия  
Дата: 05.03.12 10:57
Оценка:
Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл.
Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой .
Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.

Спасибо за внимание
prebuildevent
Re: PrebuildEvent, как правильно подсунуть данные
От: Codechanger Россия  
Дата: 05.03.12 11:52
Оценка:
Здравствуйте, Camarada, Вы писали:

C>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл.

C>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой .
C>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.

C>Спасибо за внимание


Вы бы хоть указали систему сборки, шоле. MSBuild, TFS или что?
Re[2]: PrebuildEvent, как правильно подсунуть данные
От: Camarada Россия  
Дата: 05.03.12 12:00
Оценка:
Здравствуйте, Codechanger, Вы писали:

C>Здравствуйте, Camarada, Вы писали:


C>>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл.

C>>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой .
C>>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.

C>>Спасибо за внимание


C>Вы бы хоть указали систему сборки, шоле. MSBuild, TFS или что?

MsBuild, через интерфейс VS2008. Проект на С#, .NET 3.5, если интересно почему именно так, перед сборкой собираюсь получать информацию о ревизии проекта в mercurial.
Re[3]: PrebuildEvent, как правильно подсунуть данные
От: artem.bikov  
Дата: 05.03.12 19:28
Оценка:
Здравствуйте, 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 Россия  
Дата: 05.03.12 19:39
Оценка:
Здравствуйте, artem.bikov, Вы писали:

AB>Напиши получение информации из mercurial скриптом на powershell и вызывай его в PrebuildEvent.


Артем, скрипт есть, у меня задача вкрячить эти данные в AssemblyInfo.
Re[5]: PrebuildEvent, как правильно подсунуть данные
От: hardcase Пират http://nemerle.org
Дата: 05.03.12 19:48
Оценка:
Здравствуйте, Camarada, Вы писали:

C>Артем, скрипт есть, у меня задача вкрячить эти данные в AssemblyInfo.


Просто допишите эти данные в конц файла
/* иЗвиНите зА неРовнЫй поЧерК */
Re[5]: PrebuildEvent, как правильно подсунуть данные
От: artem.bikov  
Дата: 05.03.12 19:51
Оценка:
Здравствуйте, Camarada, Вы писали:

C>Здравствуйте, artem.bikov, Вы писали:


AB>>Напиши получение информации из mercurial скриптом на powershell и вызывай его в PrebuildEvent.


C>Артем, скрипт есть, у меня задача вкрячить эти данные в AssemblyInfo.


Тогда реплейс помоему остается тебе. Ничего стандартного нет.
Ingate Development
Re[6]: PrebuildEvent, как правильно подсунуть данные
От: Camarada Россия  
Дата: 06.03.12 06:00
Оценка:
Здравствуйте, artem.bikov, Вы писали:

AB>Тогда реплейс помоему остается тебе. Ничего стандартного нет.

Тогда еще такой вопрос.
К примеру, я генерю файл, с описанием класса, содержащего константные строки, которые впоследствии заменяются моими.
Файл будет меняться часто, поэтому не хочется хранить его под контролем версий.
А что если будем собирать на компьютере, куда установлена студия, но не установлен Меркуриал
(скрипт не сгенерит нужный файл, проект не соберется, так как этот файл включен в зависимости)
Можно конечно, генерить некую заглушку (аналогичный файл с No version Info типа), но мне что-то идея не нравится, может еще варианты будут?
Re: PrebuildEvent, как правильно подсунуть данные
От: Camarada Россия  
Дата: 06.03.12 07:07
Оценка:
Здравствуйте, Camarada, Вы писали:

C>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл.

C>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой .
C>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.

C>Спасибо за внимание


Сделал генерацию, файла включенного в билдежку, в случае ошибок генерится файл с дефолтным содержимым.
Правда есть одна неприятная проблема, при изменении входных данных для файла версии, первый билд не замечает эти изменения, и данные остаются старые, приходится билдить 2 раза.
Можно ли этого избежать?
Re[7]: PrebuildEvent, как правильно подсунуть данные
От: okman Беларусь https://searchinform.ru/
Дата: 06.03.12 07:11
Оценка:
Здравствуйте, Camarada, Вы писали:

C>Тогда еще такой вопрос.

C>К примеру, я генерю файл, с описанием класса, содержащего константные строки, которые впоследствии заменяются моими.
C>Файл будет меняться часто, поэтому не хочется хранить его под контролем версий.
C>А что если будем собирать на компьютере, куда установлена студия, но не установлен Меркуриал
C>(скрипт не сгенерит нужный файл, проект не соберется, так как этот файл включен в зависимости)
C>Можно конечно, генерить некую заглушку (аналогичный файл с No version Info типа), но мне что-то идея не нравится, может еще варианты будут?

При всем понимании того, что ответ немного не по теме.
А Вы не думали заюзать какой-нибудь VisualBuild, CruiseControl.NET или TeamCity ?
Эти инструменты и с системами контроля версий умеют работать, и номерами версий
управлять (например, использовать revision number и build increment).
CruiseControl.NET к тому же бесплатный.
Re[8]: PrebuildEvent, как правильно подсунуть данные
От: Camarada Россия  
Дата: 06.03.12 07:27
Оценка:
Здравствуйте, 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, как правильно подсунуть данные
От: Camarada Россия  
Дата: 06.03.12 11:08
Оценка:
C>>Задача подсунуть строку (информация о версии), которую я узнаю перед сборкой, есть ли родное решение? Или нужно переписывать некий файл.
C>>Проблема в том, что хочу изменить атрибуты сборки перед ее сборкой .
C>>Соответственно, не юзая всяческий пушек (типа рефлекшена), нужно что-то проделать в PrebuildEvent, чтобы оттуда выцепилась инфо о версии.

C>>Спасибо за внимание


C>Сделал генерацию, файла включенного в билдежку, в случае ошибок генерится файл с дефолтным содержимым.

C>Правда есть одна неприятная проблема, при изменении входных данных для файла версии, первый билд не замечает эти изменения, и данные остаются старые, приходится билдить 2 раза.
C>Можно ли этого избежать?

Оказалось это баг MS VS, лечится правкой файла проекта, нужно добавить в первый блок PropertyGroup <UseHostCompilerIfAvailable>FALSE</UseHostCompilerIfAvailable>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.