Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку? / 8 сообщений из 8, страница 1 из 1
16.03.2016, 12:12
    #39193158
MaratSH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
Суть такая - у нас в солюшенах различных продуктов основной проект для запуска собираемого exe-приложения (сервера или клиента) один и тот же, зашаренный проект. Мы его включаем в любой солюшен, другие проекты солюшенов - расширения бизнес-логики.
Этот проект используется в разных продуктах, его версию сборки в AssemblyInfo.cs нельзя менять.
В этот общий проект нельзя включать ссылки на сборки или исходники определенных продуктов.
Каким образом менять версию сборки собираемого exe файла для какого либо солюшена, не меняя AssemblyInfo.cs этого общего проекта?
Не хотелось бы это делать с помощью каких-то редакторов ресурсов exe-файла и тому подобного.
Может быть какой-то хитрый шаблон (*.tt) можно использовать?
...
Рейтинг: 0 / 0
16.03.2016, 13:49
    #39193250
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
MaratSH, а какова цель?
...
Рейтинг: 0 / 0
16.03.2016, 14:23
    #39193293
MaratSH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
skyANAMaratSH, а какова цель?

наверное всего вопрос был глупый :)

цель - для каждого продукта в exe-шнике получать свою версию продукта
exe-шник билдится по общему проекту, а вот версию его надо кастомизировать для каждого солюшена, т.е. поставить под зависимость от настроек билда.

сколько не читал, вроде нет такого места настройки билда и момента в процессе билда с помощью msbuild, чтобы нечто, не входящее в проект, могло подменить "версию сборки" этого проекта.

видимо версию надо подменять уже в изготовленной сборке, в exe-шенике, например пост-билдовым событием другого проекта в солюшене

ну и в различных средствах изготовления инсталляций вроде бы есть такие возможности.
буду копать в направлении средств изготовления инсталляторов.
...
Рейтинг: 0 / 0
16.03.2016, 14:27
    #39193299
MaratSH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
skyANAMaratSH, а какова цель?

да, забыл объяснить почему такая цель :))
заказчик требует чтобы основные запускающие файлы продуктов содержали версии продуктов.
отображать версии в интерфейсах продуктов, помечать другие файлы сборок продуктов - хоть сколько пожалуйста.
но архитектура всех наших решений такова, что запускающий модуль всегда один, редко изменяется, а заказчику хочется чтобы именно этот файл был помечен правильным названием и версией продукта, хотя бы версией.
...
Рейтинг: 0 / 0
17.03.2016, 04:48
    #39193980
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
Организовать скрипт сборки и публикации проекта соответствующим образом. Например:

1. Экспорт исходников из версионника в рабочую папку.
2. Преобразование исходников в рабочей папке - установка нужных версий в нужных местах и т. п.
3. Компиляция проекта в рабочей папке.
4. Копирование скомпилированных модулей и прочих необходимых файлов из рабочей папки в целевую папку, в которой планируется разместить релиз проекта.
...
Рейтинг: 0 / 0
17.03.2016, 04:49
    #39193981
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
5. Передача скомпилированного релиза из целевой папки заказчику.
...
Рейтинг: 0 / 0
17.03.2016, 07:07
    #39193998
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
MaratSH,

так как подход кривой: менять номер версии у одного и того же набора файлов без изменений, то вот и кривое решение:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#if PRODUCT_1
  [assembly: AssemblyVersion("1.0.0.0")]
  [assembly: AssemblyFileVersion("1.0.0.0")]
#elif PRODUCT_2
  [assembly: AssemblyVersion("2.0.0.0")]
  [assembly: AssemblyFileVersion("2.0.0.0")]

...

#endif



При сборке каждого проекта задавайте необходимые символы, вот так:

Код: c#
1.
/p:DefineConstants="PRODUCT_1"
...
Рейтинг: 0 / 0
22.03.2016, 09:15
    #39197651
MaratSH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку?
hVosttMaratSH,
Код: c#
1.
2.
3.
4.
5.
6.
7.
#if PRODUCT_1
  [assembly: AssemblyVersion("1.0.0.0")]
  [assembly: AssemblyFileVersion("1.0.0.0")]
#elif PRODUCT_2
  [assembly: AssemblyVersion("2.0.0.0")]
  [assembly: AssemblyFileVersion("2.0.0.0")]
#endif



Код: c#
1.
/p:DefineConstants="PRODUCT_1"



Спасибо за идею.
Пока все криво, такого вида перечень продуктов в общем проекте вполне сойдет
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в солюшене задавать версию сборки не изменяя проект,который генерит сборку? / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]