Property Table contains the names and the values for all defined properties in the installation. Properties with Null value are not represented in the table.
Support for the following install samples:
MSI Driver Install Sample with Driver Package
Visual Studio cannot edit the Property Table.
MSI installers use the Edit Property Table.js as PostBuildEvent
After finished the building process, the Visual Studio calls the Edit Property Table.js script with a rebuilt msi parameter:
[Project directory with full path]\Edit Property Table.js" "[Printer Driver name with full path].msi
Example for Edit Property Table.js:
// Edit Property Table.js <msi-file>
// Disable the Repair and Change feature on Programs and Features
// Opens a database read/write in transaction mode.
var msiOpenDatabaseModeTransact = 1;
// Required action to be performed on the database row. This action is one of those shown in the following table.
// Inserts a record.
var msiViewModifyInsert = 1
// Updates an existing record.
var msiViewModifyUpdate = 2
// Writes current data in the cursor to a table row.
var msiViewModifyAssign = 3
// Updates or deletes and inserts a record into a table.
var msiViewModifyReplace = 4
// Removes a row from the table.
var msiViewModifyDelete = 6
// The filespec value is first parameter of Edit Property Table.js
var filespec = WScript.Arguments(0);
// Create installer object
var installer = WScript.CreateObject("WindowsInstaller.Installer");
// Opens an existing database
var database = installer.OpenDatabase(filespec, msiOpenDatabaseModeTransact);
var sql
var view
try
{
// Disable the Repair feature in the Programs and Features
sql = "INSERT INTO `Property`(`Property`,`Value`) VALUES ('ARPNOREPAIR','1')";
view = database.OpenView(sql);
view.Execute();
view.Close();
// Disable the Modify feature in the Programs and Features
sql = "INSERT INTO `Property`(`Property`,`Value`) VALUES ('ARPNOMODIFY','1')";
view = database.OpenView(sql);
view.Execute();
view.Close();
database.Commit();
}
catch(e)
{
WScript.StdErr.WriteLine(e);
WScript.Quit(1);
}
For more information, please see the Windows Property Reference:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=vs.85).aspx