Я не знаю о специфических особенностях, из которой модели Sony Vaio это будет работать на, но кажется, что этим вопросом может быть дубликат этот вопрос , который имеет по крайней мере один ответ для некоторых моделей Sony Vaio.
Это сценарий, который я написал, который создает uninstall.cmd. Он запускается как настраиваемое действие во время установки.
var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
var parameters = Session.Property("CustomActionData").split("|");
var targetDir = parameters[0];
var productCode = parameters[1];
ts = fso.OpenTextFile(targetDir + "uninstall.cmd", ForWriting, true);
ts.WriteLine("@echo off");
ts.WriteLine("goto START");
ts.WriteLine("=======================================================");
ts.WriteBlankLines(1);
ts.WriteLine(" Uninstall.cmd");
ts.WriteBlankLines(1);
ts.WriteLine("=======================================================");
ts.WriteBlankLines(1);
ts.WriteLine(":START");
ts.WriteLine("@REM The uuid is the 'ProductCode' in the Visual Studio setup project");
ts.WriteLine("%windir%\\system32\\msiexec /x " + productCode);
ts.WriteBlankLines(1);
ts.Close();
Результатом является cmd-файл, в котором всегда есть текущий ProductCode.
Обратной стороной этого является то, что? сценарий, создающий uninstall.cmd , остается в каталоге установки. Не большая проблема, но мне не нравится мусор в установочном каталоге. Я еще не пытался сделать "createInstaller.js" самоудалением. Это может сработать.
РЕДАКТИРОВАТЬ : да, самоудаление createInstaller.js работает нормально.
Я приму свой ответ!
Обратной стороной является то, что? сценарий, создающий uninstall.cmd , остается в каталоге установки. Не большая проблема, но мне не нравится мусор в каталоге установки. Я еще не пытался сделать "createInstaller.js" самоудалением. Это может сработать.
РЕДАКТИРОВАТЬ : да, самоудаление createInstaller.js работает нормально.
Я приму свой ответ!
Обратной стороной этого является то, что? сценарий, создающий uninstall.cmd , остается в каталоге установки. Не большая проблема, но мне не нравится мусор в каталоге установки. Я еще не пытался сделать "createInstaller.js" самоудалением. Это может сработать.
РЕДАКТИРОВАТЬ : да, самоудаление createInstaller.js работает нормально.
Я приму свой ответ!
Я нашел это решение здесь
«Используя Visual Studio 2005/2008, вам не нужно писать какой-либо код, чтобы добавить параметр удаления для проект установки (да, я знаю, что некоторые люди могут написать код для этого)
1) В проекте установки -> окна файловой системы -> щелкните правой кнопкой мыши «Файловая система на целевой машине» -> добавьте специальную папку, выберите «Система» Папка;
2) В эту системную папку Добавьте файл. Найдите файл msiexec.exe в локальной папке System32 и добавьте его. Переопределите свойства этого файла по умолчанию следующим образом:
Условие: = Не установлено (убедитесь, что вы поместили «Не установлено» точно так же, тот же случай и все такое), Постоянно: = True, Система: = Истина, Переходный: = True, Жизненно важно: = False.
3) Создайте новый ярлык в «Меню пользовательских программ», установите в качестве цели системную папку, созданную на шаге 1., и укажите его на msiexec.exe. Переименуйте ярлык в «Удалить ваше приложение». Установите для свойства Arguments значение /x{space}[ProductCode sizes.
4) Создайте проект, игнорируйте предупреждение о том, что msiexec следует исключить, НЕ исключайте его, иначе проект установки не будет построен.
'Not Установлено 'и Permananet: = True убедитесь, что файл msiexec.exe помещается в системную папку только как часть установки, ЕСЛИ он не существует, и не удаляется при удалении - поэтому довольно безопасно игнорируйте это предупреждение и просто действуйте.
(На основе описания SlapHead) "
Для удаления приложения я бы использовал [ProductCode] в качестве параметра, вызывая msiexec из самого приложения. Подробное руководство по созданию деинсталлятора можно найти в этом блоге: http://endofstream. com/creating-uninstaller-in-a-visual-studio-project/