2009-09-01 1 views
2

에 대한 사용 권한은 다음과 같이 임시 ASP.NET 파일 폴더의 권한을 설정하기 위해 노력하고있어 :윅스 - 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 및 폴더의 유틸리티 확장을 포함 시켰습니다.

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

두 번째 솔루션 "[NETWORKFRAMEWORK20INSTALLROOTDIR]"라는 이름의 디렉토리를 생성합니다 당신이 시스템의 가장 큰 드라이브. 나는 그것이 당신이 원하는 것이라고 생각하지 않습니다. :)

해결 방법은 Directory/@ Id에 "NETFRAMEWORK20INSTALLROOTDIR"을 사용하는 것입니다. 이것은 Directories가 Properties처럼 취급 될 수 있다는 것을 깨닫고 나서야 의미가 있습니다. 꼭 직관적 인 것은 아니지만 윈도우 인스톨러가 그렇습니다. 첫 번째 예를 다음과 같이 변경하면됩니다.

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

바라는 바는 올바른 방향으로 안내해 줄 수 있기를 바랍니다. 참고, 위의 예제보다 짧은 디렉터리/@ 이름을 사용합니다. ;)

+0

길을 가르쳐 주셔서 감사 드리며 디렉토리를 설명하는 것이 속성 개념처럼 취급 될 수 있습니다. –