Я хочу, чтобы мой .exe имел доступ к строке ресурса с моей версией svn. Я могу набрать это вручную, но я бы предпочел автоматическое внедрение этого во время компиляции. Есть ли такая возможность в Visual Studio 2008?
Внедрение номера версии SVN во время компиляции в приложении Windows
Ответ 1
Мне нужна была аналогичная доступность и нашло $Rev $недостаточным, потому что оно было обновлено только для файла, если была изменена эта версия файла (что означало, что ее нужно было бы отредактировать и выполнить очень долго: не то, что я хотел сделать.) Вместо этого я хотел что-то, основанное на номере ревизии репозитория.
Для проекта, над которым я сейчас работаю, я написал Perl script, который запускает svnversion -n
из самого верхнего каталога моей рабочей копии и выводит самую последнюю информацию о ревизии в файл .h(я фактически сравните его с сохраненной реверсией в файле, отличном от версии, в моей рабочей копии, чтобы я не переписывал текущую информацию о ревизии в каждом компиляторе, но решил ли вы сделать это, зависит от вас.) Этот файл .h(или номер файлов, если это необходимо, в зависимости от вашего подхода) упоминается как в моем коде приложения, так и в файлах ресурсов, чтобы получить информацию, в которой я бы хотел.
Этот script запускается как шаг предварительной сборки, чтобы все было актуально до того, как сборка начнется, и соответствующие файлы будут автоматически перестроены вашим инструментом сборки.
Ответ 2
Как использовать SubWCRev инструмент командной строки, который поставляется с TortoiseSVN. Вы создаете файл шаблона с токенами в нем, как $WCREV $$ WCDATE $и т.д. Затем выполните шаг предварительной сборки, который запускает SubWCRev в вашем файле шаблона, чтобы создать фактический исходный файл, который подается в компилятор.
Ответ 3
Вы можете получить SVN, чтобы вставить его для вас, если это решит проблему. См. Ключевое слово $Rev $на этой странице.
Ответ 4
Посмотрите на замену ключевого слова svn здесь. Существует еще один вопрос SO здесь, который я нашел через google!
Ответ 5
Решение antik - это тот, который мы используем. Будьте осторожны с использованием переменных окружения, файл .h гарантирует, что вы можете иметь зависимость, которая приведет к перекомпиляции любых файлов, которые необходимо перекомпилировать, когда изменяется номер svn rev.