Подтвердить что ты не робот

Внедрение номера версии SVN во время компиляции в приложении Windows

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 4

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

Ответ 5

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