2013-05-03 1 views
2

KeyPath = "yes"및 Assembly = ".net"을 Wix XML 파일의 DLL 구성 요소에 추가하면 설치 프로그램을 작성한 후, 그것을 실행하면 GAC에 등록 된 DLL을 실제로 설치합니다. 그것도 내 로컬 프로그램 폴더에 여전히 그들을 설치합니다. GAC에 설치 되었다면 프로그램 폴더에 넣을 필요가 없다는 가정하에있었습니다. 두 위치 모두에 DLL이있는 문제가 있으며, 그렇다면 프로그램 폴더에 설치하지 못하도록하는 방법이 있습니까?Wix 설치 프로그램이 DLL을 GAC 및 프로그램 폴더에 넣습니다.

+0

@Rob Mensching - 게시물을 보내 주셔서 감사합니다. 내 .wxs 파일을 Dark로 리버스 엔지니어링했으며 각 DLL에 대한 AssemblyManifest 및 AssemblyApplication 항목을 포함 시켰습니다. 아래의 코드에서와 같은 속성을 제거하면 GAC에만 DLL이 설치됩니다. 나는 이것이 나에게 잘 돌아갈 것이라고 생각한다. –

+0

예, 이러한 특성으로 인해 GAC에 설치되지 않습니다. –

답변

4

나는보고있는 것을 재현 할 수 없습니다.

<Component Directory="SomeFolderUnderProgramFiles"> 
    <File Source="path\to\my\strongnamedsigned.dll" Assembly=".net" KeyPath="yes" /> 
</Component> 

그럼 난 단지 GAC에 "strongnamedsigned.dll"를 얻을 : 난 단지 하나의 Component 그것처럼 보이는이있는 MSI를 만드는 경우. 내 디렉토리 트리 ( ProgramFilesFolder에 뿌리 내림)가 전혀 생성되지 않습니다.

Assembly=".net" 속성이없는 .wxs 파일의 다른 파일 사본이 있습니까? 그 일을하는 데는 아무런 문제가 없습니다. 스마트 캐빈을 사용하면 캐비닛 크기를 작게 유지할 수 있지만 파일을 두 위치에 설치해야하는 이유를 이해하는 것이 좋습니다.

관련 문제