Descubrí esto y lo documenté para fines internos. Así que simplemente reimprimiré este artículo aquí:
Los proyectos de implementación de Visual Studio no admiten la carpeta CommonDocuments directamente, pero podemos agregar esa compatibilidad mediante el Editor de condiciones de inicio, que tiene una tarea "Buscar máquina de destino" . Utilizaremos la tarea para buscar en el registro de Windows la ruta a la carpeta Documentos públicos y asignar el resultado a una propiedad de instalador (en realidad, una variable) llamada COMDOCFOLDER. Luego usaremos esa variable para establecer la ruta a una carpeta personalizada en el Editor del sistema de archivos.
Estos son los pasos para realizar la tarea. En primer lugar, abra el Editor de condiciones de inicio en un proyecto de implementación de Visual Studio:
Haga clic derecho en 'Buscar equipo de destino' y seleccione 'Agregar Registro Search' desde el menú de contexto. Aparecerá un nuevo artículo (ver 1 arriba). Llámalo Get Common Documents Folder
. En el panel de propiedades (Ver 2 arriba), establezca la propiedad 'Propiedad' (el nombre de nuestra variable) en COMDOCFOLDER
, establezca la propiedad 'Root' (la clave raíz del Registro para buscar) en vsdrrHKLM
, y configure la propiedad 'RegKey' (La clave del Registro para encontrar) al SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
. Tenga en cuenta que omitimos la clave raíz de la propiedad 'RegKey'. Finalmente, establezca la propiedad 'Valor' (El nombre del valor que estamos buscando dentro de la clave de registro) en Common Documents
. La variable COMDOCFOLDER ahora mantendrá la ruta a la carpeta Documentos públicos.
A continuación, ir al Editor del sistema de archivos en el proyecto de despliegue Visual Studio:
Haga clic en 'sistema de archivos en el equipo de destino' y seleccione 'Agregar carpeta especial> Carpeta personalizada' de la Menú de contexto. Aparecerá un nuevo artículo (ver 1 arriba). Cambie el nombre del elemento Common Documents
. En el panel de propiedades (consulte 2 más arriba), establezca la propiedad 'Propiedad' en COMDOCFOLDER
. Establecí la propiedad 'DefaultLocation' en el valor codificado de la carpeta CommonDocuments para Windows Vista y posterior; este valor solo se usaría si la propiedad COMDOCFOLDER devolviera un valor nulo, lo que no debería ocurrir. El instalador ahora tiene una carpeta de documentos comunes que apunta a la carpeta de documentos públicos, como se especifica en el registro de Windows.
Hay más información in this Microsoft Support How-To.
¡Muchas gracias por publicar esto! ¡Me ahorraste mucho tiempo tratando de resolver esto! – user685869