Установщик Visual Studio: как настроить таргетинг на папку общедоступных документов Windows?

#visual-studio #deployment #installation

#visual-studio #развертывание #установка

Вопрос:

Я создаю настольное приложение, которому необходимо установить SDF-файл в SpecialFolder.CommonDocuments папку ( C:UsersPublicdocuments в Win 7). Как указать эту папку в редакторе файловой системы в проекте развертывания Visual Studio Desktop?

Я попытался создать пользовательскую папку в редакторе файловой системы и указать ее на папку CommonDocuments на панели свойств, например:

Скриншот панели свойств

К сожалению, эта спецификация не будет собрана. Я не хочу жестко указывать путь к папке, поскольку он варьируется в разных версиях Windows. Итак, как мне указать папку CommonDocuments в редакторе файловой системы? Спасибо за вашу помощь.

Ответ №1:

Я разобрался с этим и задокументировал его для внутренних целей. Итак, я просто перепечатаю эту запись здесь:

Проекты развертывания Visual Studio не поддерживают папку CommonDocuments напрямую, но мы можем добавить эту поддержку с помощью редактора условий запуска, в котором есть задача «Поиск целевой машины». Мы будем использовать задачу для поиска в реестре Windows пути к папке общедоступных документов и присвоения результата свойству установщика (фактически переменной) с именем COMDOCFOLDER. Затем мы будем использовать эту переменную, чтобы задать путь к пользовательской папке в редакторе файловой системы.

Вот шаги для выполнения задачи. Сначала откройте редактор условий запуска в проекте развертывания Visual Studio:

Редактор условий запуска

Щелкните правой кнопкой мыши «Поиск целевой машины» и выберите «Добавить поиск в реестре» из контекстного меню. Появится новый элемент (см. 1 выше). Назовите ее Get Common Documents Folder . На панели свойств (см. 2 выше) задайте свойству ‘Property’ (имя нашей переменной) значение COMDOCFOLDER , свойству ‘Root’ (корневой раздел реестра для поиска) значение vsdrrHKLM и свойству ‘RegKey’ (раздел реестра для поиска) значение SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell Folders . Обратите внимание, что мы опустили корневой ключ из свойства ‘RegKey’. Наконец, установите для свойства ‘Value’ (имя значения, которое мы ищем в разделе реестра) значение Common Documents . Переменная COMDOCFOLDER теперь будет содержать путь к папке общедоступных документов.

Затем перейдите в редактор файловой системы в проекте развертывания Visual Studio:

Редактор файловой системы

Щелкните правой кнопкой мыши «Файловая система на целевом компьютере» и выберите «Добавить специальную папку> Пользовательская папка» из контекстного меню. Появится новый элемент (см. 1 выше). Переименуйте элемент Common Documents . На панели свойств (см. 2 выше) установите для свойства ‘Property’ значение COMDOCFOLDER . Я установил для свойства ‘DefaultLocation’ жестко запрограммированное значение папки CommonDocuments для Windows Vista и более поздних версий; это значение будет использоваться только в том случае, если свойство COMDOCFOLDER возвращает нулевое значение, чего не должно происходить. Теперь у установщика есть папка «Общие документы», которая указывает на папку «Общедоступные документы», как указано в реестре Windows.

Больше информации содержится в этом руководстве по поддержке Microsoft.

Комментарии:

1. Большое спасибо за публикацию этого! Вы сэкономили мне много времени, пытаясь разобраться в этом!

Ответ №2:

Ответ Дэвида Винемана великолепен! Очень помогло. Небольшое исправление:

Щелкните правой кнопкой мыши «Файловая система на целевом компьютере» и выберите «Добавить специальную папку> Пользовательская папка» из контекстного меню. Появится новый элемент (см. 1 выше). Переименуйте элемент Common Documents. На панели свойств (см. 2 выше) установите для свойства ‘Property’ значение

[COMDOCFOLDER]

Эти квадратные скобки необходимы, иначе вы получите исключение при выполнении программы установки.