У меня есть установщик, созданный с помощью Настройка и развертывание Visual Studio , который обычно работает довольно хорошо.
Время от времени один из моих выпусков имеет недостатки, и мне нужен способ быстроотмените моё решение пойти с моим невероятным обновлением.
Я могу создать ссылку, включив пользовательский класс, который наследуется от System.Configuration.Installer
, или создать опцию в моем приложении, чтобы удалить себя, чтобы я мог переустановитьстарая версия, использующая что-то вроде этого:
//using System.Diagnostics;
public static void Uninstall(string productCode, string option) {
if (!String.IsNullOrEmpty(productCode) && !String.IsNullOrEmpty(option)) {
string path = Environment.GetFolderPath(Environment.SpecialFolder.System);
string param1 = string.Format("{0} {1}", path, @"\msiexec.exe");
string param2 = string.Format("{0} {1}", option, productCode);
ProcessStartInfo psInfo = new ProcessStartInfo(param1, param2);
// NOTE: `option` = /i to repair or remove; /x to remove only
try {
Process.Start(psInfo);
return;
} catch (Exception) { } // the uninstall failed
}
}
Итак ...
Мой вопрос: Как мне получить ProductCode для моей установки?
ПРИМЕЧАНИЕ. Я понимаю, что Microsoft рекомендует использовать Add/Remove Programs
(XP) или Programs and Features
(Vista / 7), но мое приложение работает в производственной среде, в которой большинство ПК не имеют этих функций (используя tweak
или некоторые другиеинструмент) нашими сетевыми администраторами.