Я понял это и задокументировал это для внутренних целей. Итак, я просто перепечатаю эту запись здесь:
Проекты развертывания Visual Studio не поддерживают папку CommonDocuments напрямую, но мы можем добавить эту поддержку с помощью редактора условий запуска, в котором есть задача «Search Target Machine». Мы будем использовать эту задачу для поиска в реестре Windows пути к папке с общедоступными документами и присвоения результата свойству установщика (на самом деле это переменная) с именем COMDOCFOLDER. Затем мы будем использовать эту переменную, чтобы указать путь к пользовательской папке в редакторе файловой системы.
Вот шаги для выполнения задачи. Сначала откройте редактор условий запуска в проекте развертывания Visual Studio:
Щелкните правой кнопкой мыши «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:
Щелкните правой кнопкой мыши «Файловая система на целевом компьютере» и выберите «Добавить специальную папку> Пользовательская папка» в контекстном меню. Появится новый элемент (см. 1 выше). Переименуйте предмет Common Documents
. На панели свойств (см. 2 выше) установите для свойства «Свойство» значение COMDOCFOLDER
. Я установил для свойства DefaultLocation жестко заданное значение папки CommonDocuments для Windows Vista и более поздних версий; это значение будет использоваться только в том случае, если свойство COMDOCFOLDER вернуло нулевое значение, чего не должно быть. Теперь в установщике есть папка Common Documents, которая указывает на папку Public Documents, как указано в реестре Windows.
Дополнительная информация приведена в этом руководстве по поддержке Microsoft .