2009-09-01 10 views
2

の権限は、私は次のように一時ASP.NETファイルフォルダのアクセス権を設定しようとしている:WiXの - ASP.NET Tempフォルダ

<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> 

私はnetfxとutilの拡張を含めました。私はコンパイルするとき、私は次のエラーを取得する:

エラーLGHT0094:シンボルへの未解決の参照「ディレクトリ:NETFRAMEWORK20INSTALLROOTDIR」

私はここで何をしないのですか?

更新:WiXについてよく知らないので、私はこれを試しました。コンパイルしてリンクします。実際に動作するかどうかはわかりません。

<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> 

答えて

1

2番目のソリューションでは、マシンの最大ドライブに "[NETWORKFRAMEWORK20INSTALLROOTDIR]"という名前のディレクトリが作成されます。私はそれがあなたが望むものだとは思わない。 :)

解決策は、ディレクトリ/ @ Idとして "NETFRAMEWORK20INSTALLROOTDIR"を使用することです。これは、ディレクトリがプロパティのように扱われることを認識した後でしか意味がありません。必ずしも直感的なわけではありませんが、Windowsインストーラはそれにもかかわらずです。正しい方向にあなたを指してうまくいけば

<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"> 

、:だから、私はちょうどのようなものにあなたの最初の例を変更したいです。注:上記の例より短いDirectory/@ Nameを使用します。 ;)

+0

ディレクトリを説明してくれてありがとう、ありがとう、プロパティの概念のように扱うことができます。 –

関連する問題