Visual-Studio-2008 VersionInfo для всех файлов, обновленных из одного места
-
02-10-2019 - |
Вопрос
Информация о версии, отображаемая, когда курсор мыши зависает через файл в Windows Explorer, установлен для файла, созданного Visual Studio в ресурсе версии. Я хотел бы установить версию в одном месте для всех файлов, созданных решением, предпочтительно, когда я меняю версию в свойства установки. Есть ли способ сделать это?
Мотивация для этого в том, что если версия не обновляется для файла, то установщик оставит предыдущие версии файлов вместо того, чтобы заменять их новые файлы. Это происходит, даже когда собственность «RewsPreversionVersions» устанавливается. Чтобы сохранить утомительную и ошибку, склонную к обновлению версии в каждом файле, созданном и установленном, я удаляю ресурс версии из всех файлов - что не элегантно.
Решение
Второй ответ в стеке переполняет тему Как программически изменить версию продукта проекта? Особенности решения для установки номера версии из общего файла заголовка в C ++. Просто поместите файл заголовка, содержащий жесткие номера версий в папке, где каждый проект может найти его.
Вышеуказанный ответ также описывает средство увеличения номера версии. Альтернативный подход для увеличения версии C ++ доступен в статье Microsoft Как увеличить информацию о версии после каждой сборки в Visual C ++.
Альтернативно, вы можете использовать номер редакции репозитория управления исходным управлением как часть номера версии. Статья переполнения стека Создание файла с номером сборки и именем ветви в SVN Дает некоторое представление о том, что для пользователей TortoiseSVN. Следующие две статьи исследовать это более глубоко:
Автоматически интегрируя пересмотр в версию Subversion в версию с помощью .NET (C # или VB)
Интеграция пересмотра Subversion в версию автоматически нативный C / C ++
(Вышеуказанные две веб-страницы включают ссылки на аналогичные процедуры для пользователей TortoiseHG)
Теоретически, у вас может быть один текстовый файл, удерживающий новый номер версии, а затем запустить скрипт предварительного сборки, который будет:
- Увеличивать номер версии в текстовом файле (необязательно включение номера ревизии репозитория)
- Запишите или измените общие файлы версии для:
- C ++ (версия .h)
- C # (globalassemblyinfo.cs)
- Java (в пути файла свойств Ant, например, версия.
- и т.п.
Другие советы
Чтобы централизовать версию для решения:
- Возьмите информацию о версии из AssocialInfo.cs;
- Создайте новый файл (GlobalassemblyInfo.cs) и поместите информацию о вашей версии (используя *, чтобы получить VS, чтобы создать новый номер версии для каждой сборки);
- Ссылка GlobalassemblyInfo.cs в качестве ссылки: Добавить | Существующий пункт, затем выпадайте вниз кнопку «Добавить» в выборе файла, чтобы выбрать добавление в качестве ссылки вместо этого;
- Повторить для каждого проекта в растворе;
Я использую такой блок для версии:
#if debug.
Сборка: Assockerversion («1.8.0,0»)
#еще
Сборка: Assockerversion («1.8. *»)
#endif.
Это держит против восстановления каждой сборки во время разработки, но дает каждое собрание нового номера версии, когда я создаю выпуск.