Я не хотел использовать метод .exe, описанный выше, и у меня было немного свободного времени, поэтому я начал копать. Я использую VS 2008 в 64-разрядной версии Windows 7. Когда у меня есть проект установки, давайте назовем его MySetup. Все подробности проекта можно найти в файле $ (ProjectDir) MySetup.vdproj.
Версия продукта будет найдена в отдельной строке этого файла в форме
ProductVersion="8:1.0.0"
Теперь в проекте установки ЕСТЬ событие после сборки. Если вы выберете проект установки и нажмете F4, вы получите совершенно другой набор свойств, чем когда вы щелкаете правой кнопкой мыши и выбираете свойства. После нажатия F4 вы увидите, что одно из событий - PostBuildEvent. Опять же, предполагая, что проект установки называется MySetup, следующее установит имя файла .msi, чтобы включить дату и версию.
set datevar=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
findstr /v PostBuildEvent $(ProjectDir)MySetup.vdproj | findstr ProductVersion >$(ProjectDir)version.txt
set /p var=<$(ProjectDir)version.txt
set var=%var:"=%
set var=%var: =%
set var=%var:.=_%
for /f "tokens=1,2 delims=:" %%i in ("%var%") do @echo %%j >$(ProjectDir)version.txt
set /p realvar=<$(ProjectDir)version.txt
rename "$(ProjectDir)$(Configuration)\MySetup.msi" "MySetup-%datevar%-%realvar%.msi"
Я проведу вас через все вышесказанное.
datevar - текущая дата в формате ГГГГММДД.
Строка findstr проходит через MySetup.vdproj, удаляет любую строку с PostBuildEvent в, затем возвращает единственную строку, оставшуюся с productVersion в, и выводит ее в файл. Затем мы удаляем кавычки, пробелы, превращаем точки в подчеркивания.
Строка for разделяет оставшуюся строку на двоеточие, берет вторую часть и снова выводит ее в файл.
Затем мы устанавливаем realvar на значение, оставшееся в файле, и переименовываем MySetup.msi, чтобы включить дату и версию.
Итак, учитывая ProductVersion выше, если бы это было 27 марта 2012 г., файл был бы переименован в
MySetup-20120327-1_0_0.msi
Очевидно, что с помощью этого метода вы можете получить ЛЮБУЮ переменную в файле vdproj и включить их в имя выходного файла, и нам не нужно создавать для этого какие-либо дополнительные программы .exe.
HTH
person
Jim Grimmett
schedule
27.03.2012