Встраивание номера редакции SVN во время компиляции в приложение Windows - PullRequest
17 голосов
/ 30 сентября 2008

Я бы хотел, чтобы мой .exe имел доступ к строке ресурса с моей версией svn. Я могу напечатать это вручную, но я предпочел бы автоматизированный способ вставить это во время компиляции. Есть ли такая возможность в Visual Studio 2008?

Ответы [ 5 ]

21 голосов
/ 30 сентября 2008

Я хотел подобную доступность и обнаружил, что $ Rev $ недостаточно, потому что он обновлялся для файла только в том случае, если была изменена ревизия этого файла (что означало, что его нужно будет редактировать и фиксировать очень долго: я не хотел этого делать . Вместо этого я хотел что-то, основанное на номере ревизии хранилища.

Для проекта, над которым я сейчас работаю, я написал Perl-скрипт, который запускает svnversion -n из самой верхней директории моей рабочей копии и выводит самую последнюю информацию о ревизиях в файл .h (на самом деле я сравниваю его) сохраненной реверсии в не версионном файле в моей рабочей копии, так что я не перезаписываю информацию о текущей ревизии при каждой компиляции, но независимо от того, решили ли вы сделать это, зависит от вас.) Этот файл .h (или несколько файлов) в случае необходимости, в зависимости от вашего подхода) ссылки как в моем коде приложения, так и в файлах ресурсов, чтобы получить информацию, где я хотел бы.

Этот скрипт запускается как предварительный этап сборки, поэтому все обновляется до того, как начинается сборка, и соответствующие файлы автоматически перестраиваются с помощью инструмента сборки.

15 голосов
/ 16 октября 2009

Как насчет использования SubWCRev инструмента командной строки, который поставляется с TortoiseSVN . Вы создаете файл шаблона с токенами в нем, например, $ WCREV $ $ WCDATE $ и т. Д. Затем необходимо выполнить предварительную сборку, чтобы запустить SubWCRev для вашего файла шаблона, чтобы создать фактический исходный файл, который передается компилятору.

3 голосов
/ 30 сентября 2008

решение Antik - это то, что мы используем. Будьте осторожны с использованием переменных среды, файл .h гарантирует, что у вас может быть зависимость, которая приведет к перекомпиляции любых файлов, для которых она требуется, при изменении номера версии SVN.

3 голосов
/ 30 сентября 2008

Посмотрите на подстановку ключевых слов svn здесь . Есть еще один вопрос здесь , который я нашел через Google!

3 голосов
/ 30 сентября 2008

Вы можете заставить SVN встроить его для вас , если это решит проблему. См. Ключевое слово $ Rev $ на этой странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...