Я закончил тем, что передал код продукта в качестве аргумента командной строки моему классу установщика, используя свойство CustomActionData в Visual Studio (например, / productcode = {31E1145F-B833-47c6-8C80-A55F306B8A6C}.
Затем я могу получить доступ к этому из любого обратного вызова в классе установщика, используя Context.Parameters StringDictionary
string productCode = (string)Context.Parameters["productcode"];