Установщик Visual Studio: как настроить папку общих документов Windows? - PullRequest
8 голосов
/ 07 апреля 2011

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

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

Properties pane screenshot

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

Ответы [ 2 ]

12 голосов
/ 08 апреля 2011

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

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

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

Launch Conditions Editor

Щелкните правой кнопкой мыши «Search Target Machine» и выберите «Add Registry Search» из контекстного меню. Появится новый элемент (см. 1 выше). Назовите это Get Common Documents Folder. На панели свойств (см. 2 выше) установите для свойства «Свойство» (имя нашей переменной) значение COMDOCFOLDER, для свойства «Корень» (корневой каталог реестра для поиска) укажите значение vsdrrHKLM и установите Свойство 'RegKey' (ключ реестра) для SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders. Обратите внимание, что мы пропустили корневой ключ в свойстве RegKey. Наконец, установите для свойства 'Value' (имя значения, которое мы ищем в разделе реестра) значение Common Documents. Переменная COMDOCFOLDER теперь будет содержать путь к папке Public Documents.

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

File System Editor

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

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

0 голосов
/ 10 июня 2013

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

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

[COMDOCFOLDER]

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

...