2013-02-09 2 views
1

Мне просто нужно немного успокоиться здесь. Я создаю базовую программу на C#, которая, помимо прочего, удалит и переустановит самую последнюю версию программы (я не могу встроить эту функцию в саму программу). Как я это делаю:Удалить String из реестра всегда то же самое?

MsiExec.exe /X{[UninstallString]} /passive 

в процессе командной строки. У меня есть несколько вопросов:

  1. Очевидно, что вы не знаете историю программы (я не либо сказать вам правду), но в том, что удаление строки в целом же каждый раз для каждой версии ? Изменилось ли это?
  2. Есть ли какой-либо возможный способ, которым uninstallstring может случайно быть строка другой программы на другом компьютере? Я не хочу ничего удалять.

В принципе, я просто хочу знать, безопасно ли это. Если нет, или если есть лучший способ сделать это программно, дайте мне знать! Благодаря!

ответ

1

См. "To uninstall a product"; вы можете указать ProductCode, который по определению является глобально уникальным. Таким образом, вы не удалите какой-либо другой продукт. Вы также можете указать имя файла msi, но вам нужно быть более осторожным, так как может случиться так, что разные продукты получают одинаковое имя файла. Поэтому использование ProductCode - лучший способ сделать это.

См. Также What are Upgrade, Product and Package Codes used for?

Смежные вопросы