2009-09-01 4 views
2

Je suis en train de définir les autorisations des fichiers ASP.NET temp dossier comme suit:WiX - Autorisations pour ASP.NET Temp Folder

<PropertyRef Id="NETFRAMEWORK20INSTALLROOTDIR"/> 
<DirectoryRef Id="NETFRAMEWORK20INSTALLROOTDIR"> 
    <Directory Id="TempASPNETFolder" Name="Temporary ASP.NET Files"> 
    <Component Id="PermissionsTempAspnet" Guid="{C107EC7F-FC97-41b6-B418-EA4532949362}"> 
     <CreateFolder> 
     <util:PermissionEx GenericAll="yes" User="[WIX_ACCOUNT_NETWORKSERVICE]" /> 
     </CreateFolder> 
    </Component> 
    </Directory> 
</DirectoryRef> 

J'ai inclus les extensions netfx et util. Quand je compile je reçois l'erreur suivante:

erreur LGHT0094: référence au symbole Unresolved « Répertoire: NETFRAMEWORK20INSTALLROOTDIR »

Qu'est-ce que je manque ici?

Mise à jour: Je ne sais pas grand-chose sur WiX, j'ai essayé cela. Il compile et relie. Pas sûr que cela fonctionne réellement.

<DirectoryRef Id="TARGETDIR"> 
    <Directory Id="NetFramework20InstallDir" Name="[NETFRAMEWORK20INSTALLROOTDIR]"> 
    <Directory Id="TempASPNETFolder" Name="Temporary ASP.NET Files"> 
     <Component Id="PermissionsTempAspnet" Guid="{C107EC7F-FC97-41b6-B418-EA4532949362}"> 
     <CreateFolder> 
      <util:PermissionEx GenericAll="yes" User="[WIX_ACCOUNT_NETWORKSERVICE]" /> 
     </CreateFolder> 
     </Component> 
    </Directory> 
    </Directory> 
</DirectoryRef> 

Répondre

1

Votre deuxième solution va créer un répertoire nommé « [NETWORKFRAMEWORK20INSTALLROOTDIR] » sur le plus grand disque sur votre machine. Je ne pense pas que ce soit ce que tu veux. :)

La solution consiste à utiliser "NETFRAMEWORK20INSTALLROOTDIR" comme répertoire/@ Id. Cela n'a de sens qu'après avoir réalisé que les répertoires peuvent être traités comme des propriétés. Pas forcément intuitif mais c'est ce que fait Windows Installer. Donc, je voudrais juste changer votre premier exemple pour quelque chose comme:

<PropertyRef Id="NETFRAMEWORK20INSTALLROOTDIR"/> 
<DirectoryRef Id="TARGETDIR"> 
    <Directory Id="NETFRAMEWORK20INSTALLROOTDIR" Name="This will be ignored because the DirectorySearch used by the PropertyRef above will overwrite it."> 
    <Directory Id="TempASPNETFolder" Name="Temporary ASP.NET Files"> 

Espérons que cela vous dirige dans la bonne direction. Remarque, j'utiliserai un nom Directory/@ plus court que mon exemple ci-dessus. ;)

+0

Merci de pointer le chemin et d'expliquer les répertoires peuvent être traités comme concept de propriétés. –

Questions connexes