2009-08-28 1 views
3

Windows Server 2008 64 비트에서 \ windows \ system32 \ inetsrv 폴더에 일부 파일을 쓰려면 .msi 설치 프로그램 파일이 필요합니다. (이 파일은 C# XmlReaderSettings.Schema.Add()가 해당 폴더에 있어야하는 일부 XML 스키마 유효성 검사 파일입니다.MSI 설치 프로그램, 64 비트 OS, windows system32 inetsrv 폴더에 쓰기

설치 관리자가 실행될 때 파일은 \ windows \ SysWOW64 \ inetsrv 폴더에 있으며 끝내야합니다.

설치 프로그램에서 \ windows \ Sysnative 폴더에 쓰기를 시도했지만 설치 프로그램에서 그 이름이 정확한 폴더를 만들었지 만 가능하지는 않습니다. SysWOW64 리디렉션을 억제하는 것에 대한 좋은 설명은 this page을 참조하십시오.

Windows 2008 64 비트에서 .msi 파일을 \ windows \ system32 \ inetsrv 폴더에 저장하려면 어떻게해야합니까?

답변

2

여기에 system folder properties을 사용할 수 있습니다. 반 직관적 인 건 알지만 System64Folder을 사용해 보셨습니까? 비고문을 읽으십시오.

그래도 작동하지 않으면 System32를 WindowsFolder 끝에 붙이십시오.

편집 -1 : Win64 attribute on your Component 요소를 설정하고 리디렉션 동작이 변경되는지 확인하십시오.

+0

Jeff, 제공 한 시스템 폴더 속성이 유용합니다. 그러나 System64Foler를 사용하려고하면 대상 플랫폼이 호환되지 않는 컴파일러 오류가 발생합니다. 내 응용 프로그램은 x86 및 x64에 모두 설치해야합니다. WindowsFolder가 끝날 때 System32를 누르고 있으면 SysWOW64 리디렉션으로 인해 \ Windows \ SysWOW64 \로 출력됩니다. –

+0

Darn. 그것은 내 지식의 범위입니다. : –

+0

win64 일을 시도하십시오. –

0

\ windows \ system32가 아닌 \ windows에 파일을 작성하여 문제를 해결했습니다. C# XmlReaderSettings.Schema.Add()는 \ windows 디렉터리 아래의 정규화 된 경로로 작동합니다. 제공된 경로가 완전하지 않은 경우 system32 폴더가 기본값으로 사용됩니다.

이것은 실제로 질문에 대한 답변이 아니지만 즉각적인 필요에 대한 해결 방법입니다.

1

wxs 파일에서 Sysnative를 사용하려고했지만 동일한 결과가 나타납니다. System32를 사용하는 대신 Windows에서 Sysnative 폴더를 만듭니다. 그래서 vbscript CA에서 Sysnative를 사용했습니다 : Windows 폴더 (& H24 &)를 발견하고 \ Sysnative를 추가하십시오. 이 작동하지만 제거하는 동안 파일을 삭제하려면 두 번째 CA가 필요합니다.

관련 문제