Я создаю задачу MSBuild, которая будет читать реестр для определенного раздела реестра. Если я пишу ту же строку кода (см. Ниже) в консольном приложении, он возвращает ожидаемый результат, но когда он находится в задаче MSBuild, он ничего не возвращает.
Return Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup\", "SQLPath", Nothing)
Я ожидаю, что приведенный выше код вернет Nothing
, если пары ключ / значение не существует, и вернет значение, если оно существует. Я получаю Nothing
при выполнении задачи MSBuild. Есть ли какой-то атрибут, который мне нужно применить к функции «Выполнить» задачи MSBuild, чтобы сообщить ей, что ей нужно прочитать реестр?
EDIT:
Вот что выполняется из задачи MSBuild:
Return Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Setup\", "SQLPath", Nothing)
Я полагаю, что это вызвано перенаправителем реестра на моей машине Vista x64 с MSBuild в 32-битной версии. Можно ли как-нибудь сказать, что пользовательская задача MSBuild (написанная на VB .Net) должна искать в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup\
тогда, только если там ничего не существует, тогда искать в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Setup\
?
Спасибо,
Скотт Блю