¿Cómo puedo hacer referencia al directorio de inicio del usuario en WIX?

Estoy creando un instalador para un SDK, que incluye el código fuente que compilará el usuario final.

Quiero que mi instalador de Wix coloque esto en el directorio de inicio de los usuarios de forma predeterminada, pero no puedo encontrar el nombre de propiedad correcto para usar.

preguntado el 09 de marzo de 12 a las 14:03

4 Respuestas

También podría hacer referencia a la HOMEPATH variable de entorno con [%HOMEPATH]. Para obtener más detalles sobre la sintaxis utilizada para las propiedades, consulte la Con formato tipo de datos.

respondido 12 mar '12, 17:03

En una nota relacionada, también hay [%HOMEDRIVE] que puede prefijar para obtener una ruta completa: [%HOMEDRIVE][%HOMEPATH]. Alternativamente, $(env.HOMEDRIVE)$(env.HOMEPATH) puede ser usado. - Cameron

... ignora la última parte de mi comentario anterior, el $(env.) ¡Las versiones se evalúan en el momento de la compilación, no en el momento de la instalación! Y tenga en cuenta que también hay [%USERPROFILE]. - Cameron

... y resulta que es posible que [%HOMEDRIVE][%HOMEPATH] ser diferente de [%USER_PROFILE]. - Cameron

Creo que estas buscando PersonalFolder.

Hay una lista completa de carpetas especiales aquí:

http://msdn.microsoft.com/en-us/library/aa370905%28VS.85%29.aspx#system_folder_properties

respondido 09 mar '12, 14:03

PersonalFolder es la carpeta Documentos para el usuario actual, estoy buscando la carpeta real del usuario. Sin embargo, la carpeta Documentos servirá, ¡así que gracias! - Robar

En caso de que ayude, para WiX v3.11.2.4516 he usado USER_FOLDER como el siguiente ejemplo:

<Directory Id="USER_FOLDER">
    ...
</Directory>

EDITAR

...habiendo calculado esta propiedad con

<Property Id="USER_FOLDER" >
    <DirectorySearch Id="userProfileSearch" Depth="0" Path="[%USERPROFILE]" />
</Property>

Respondido 13 Abr '20, 16:04

Cualquiera que en el futuro investigue esto y se pregunte cómo hacer que este [%HOMEPATH] funcione, espero que esto le ayude:

<!-- Declare an action which binds the 'user home' to UserFolder 
     (You can replace [%HOMEDRIVE][%HOMEPATH] with [%USERPROFILE], read the difference from internet.) -->
<CustomAction 
     Id='SpecifyUserFolder' 
     Directory='UserFolder'
     Value="[%HOMEDRIVE][%HOMEPATH]" />

<!-- put this before installation process -->
<InstallExecuteSequence>
  <Custom Action="SpecifyUserFolder" Before="InstallFiles" />
</InstallExecuteSequence> 

<!-- User home then becomes available here, because the ID matches the declared ID in CustomAction above. -->
<Directory Id='UserFolder'>
</Directory>'

respondido 06 nov., 17:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.