Ändra MSI-databas för omstart av system

Hittade återigen ingen bra info om hur man skulle göra detta i praktiken, så dumpar lite kod här för framtida bruk.

Kan läggas till som t.ex en post-build action eller liknande för att modifiera databasen i en MSI-installer till att starta om datorn.


Type type = Type.GetTypeFromProgID("WindowsInstaller.Installer");
Installer installer = (Installer)Activator.CreateInstance(type);

var db = installer.OpenDatabase(path, 1);

Console.WriteLine("Setting property REBOOT to Force in Property table");
var view = db.OpenView("INSERT INTO Property (Property, Value) VALUES ('REBOOT', 'Force')");

view.Execute();
db.Commit();

Här är egenskapsreferensen:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=vs.85).aspx

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>