лет спустя, но все же полезным может быть этот cmd-скрипт. Это написано, чтобы удалить старые вещи из моего профиля, но очень просто расширить:
@echo off
@setlocal
REM Remove everything older then "/D" days (ten/10 days in our examples below)
REM BUT we can not remove directories with files in it, so we do it in two-steps ways:
REM 1st remove all files by using the command: del
REM 2nd remove all files by using the command: rd
REM cleanup %TMP%
forfiles -p "%TMP%" -m * /D -10 /C "cmd /c del /s/q @path > nul 2> nul"
forfiles -p "%TMP%" -m * /D -10 /C "cmd /c rd /s/q @path > nul 2> nul"
REM cleanup %TEMP%
forfiles -p "%TEMP%" -m * /D -10 /C "cmd /c del /s/q @path > nul 2> nul"
forfiles -p "%TEMP%" -m * /D -10 /C "cmd /c rd /s/q @path > nul 2> nul"
REM cleanup the Downloads folder in the current profile
forfiles -p "%USERPROFILE%\Downloads" -m * /D -10 /C "cmd /c del /s/q @path > nul 2> nul"
forfiles -p "%USERPROFILE%\Downloads" -m * /D -10 /C "cmd /c rd /s/q @path > nul 2> nul"
@endlocal
@echo on
Существует несколько вещей, которые должны быть сделаны, чтобы заставить "обновления" работать с MSI, если Вы хотите автоматически удалить предыдущую версию.
Сначала некоторая справочная информация о таинственных "кодах". Существует 3 кода (GUID), связался с MSI:
Код Обновления никогда не должен изменяться. Поскольку Вы обновляете сценарий, Код продукта должен быть изменен для каждой версии. Кроме того, как Вы упомянули, необходимо ударить номер версии. Код Кода продукта и Обновления может быть найден путем выбора проекта установки и движения в Окно свойств. Код Пакета скрыт в Studio и будет всегда обновляться.
Объект, который Вы, вероятно, пропускаете, то, что также необходимо установить установку RemovePreviousVersions в Окне свойств к истинному.
Еще одна вещь в дополнение к ответу Мольсена (для Visual Studio 2008):
Для правильного обновления вашего основного вывода (вашего EXE!) Вы должны увеличить ВЕРСИЯ ФАЙЛА
Этот параметр можно найти в свойствах проекта: вкладка «Приложение» -> «Информация о сборке»