2013-04-20 5 views
10

Vorrei copiare un file in una posizione di Doucments in WiX. Ma dà l'avviso:Component testcomp installa sul profilo utente. È necessario utilizzare una chiave di registro in HKCU come KeyPath, non un file

Component testcomp installa sul profilo utente. È necessario utilizzare una chiave di registro in HKCU come KeyPath, non un file.

Il mio codice:

<Directory Id='PersonalFolder' Name='MyDocuments'> 
    <Component Id='testcomp' Guid='08C288B6-D8E0-4036-9CEB-E5F616AC6B5C'> 
     <File Id='doc_code_file1' Name='doc_code_file1' DiskId='1' 
      Source='Personalfolder\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippets\SimpleMvvm\mvvmcommand.snippet' KeyPath='yes'></File> 
    </Component> 
</Directory> 

risposta

18

Questo è corretto. Windows Installer richiede le chiavi del Registro di sistema come percorsi chiave per i componenti per utente. Ha a che fare con il modo in cui i profili funzionano con i contenuti pubblicizzati nelle distribuzioni aziendali. La correzione è molto semplice:

<Directory Id='PersonalFolder' Name='MyDocuments'> 
    <Component Id='testcomp' Guid='08C288B6-D8E0-4036-9CEB-E5F616AC6B5C'> 

     <RegistryValue Root='HKCU' Key='Software\Manufacturer\Product' 
        Name='Something (I like to use InstallFolder)' 
        Value='Something (I like to use [INSTALLFOLDER]' 
        KeyPath='yes' /> 

     <File Id='doc_code_file1' Name='doc_code_file1' DiskId='1' 
      Source='Personalfolder\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippets\SimpleMvvm\mvvmcommand.snippet' /> 
    </Component> 
</Directory> 

Nota: La chiave del Registro per utente aggiunto e che è contrassegnato KeyPath='yes'. Quest'ultimo non è esplicitamente necessario poiché è la prima risorsa nel componente che verrà contrassegnata come percorso chiave per impostazione predefinita, ma essere espliciti con il percorso chiave è talvolta migliore.

+0

L'avviso esistente era scomparso. Ma viene visualizzato un nuovo avviso "avviso LGHT1076: ICE91: il file 'doc_code_file1' verrà installato nella directory per utente 'code_SimpleMvvm' che non varia in base al valore di ALLUSERS.Questo file non verrà copiato nemmeno nel profilo di ogni utente se si desidera un'installazione per macchina ". Quale potrebbe essere un problema? – Smaug

Problemi correlati