2015-03-30 12 views
0

У меня есть настраиваемое действие управляемого кода, которое использует следующий код для чтения пользовательской таблицы.Чтение таблицы Directory MSI с помощью настраиваемого действия

var Configfolder = session.Database.OpenView(session.Database.Tables["ProtectedConfigFolders"].SqlSelectString); 

Это работает, как всегда, когда я пытаюсь прочитать таблицу каталогов таким же образом

var dirview = session.Database.OpenView(session.Database.Tables["Directory"].SqlSelectString); 

я получаю

исключение типа «Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException ' произошел в Microsoft.Deployment.WindowsInstaller.dll.

ответ

0

Если настраиваемое действие выполняется после того, как CostFinalize вы можете ссылаться на значения таблицы каталога, просто только рассматривая их как свойства MSI (т.е. захватить каталог, так же, как бы захватить «ProductVersion» или «ProductName» в обычае действие).

+0

Я закончил это, так как мне пришлось закончить продукт. Но я действительно хотел прочитать таблицу, чтобы получить родительский каталог, в конце концов, я просто использовал метод Directory.GetParent, однако нашел странным, что я не мог прочитать эту таблицу и задался вопросом, возможно, это была ошибка в DTF, поскольку я мог бы также прочитайте таблицу файлов и таблицу компонентов таким же образом без проблем. Однако я не мог найти другую ссылку на эту проблему. Я подожду, и если никто не придет к ответу завтра, я помету ваш ответ. Хотя это не отвечает на мой вопрос, было ли решение, которое я использовал и является технически правильным. –