기본적으로 특정 하드웨어가 설치되어 있는지를 확인하기 위해 devcon.exe (Windows 하드웨어 관리자의 명령 줄 버전)를 실행할 수있는 WIX msi를 빌드하려고합니다. 그렇다면 msi A를 설치하고, msi B를 설치하십시오 (A와 B는 이미 별도의 msi 패키지로 존재하므로 하드웨어를 기반으로 자동 선택 설치가 필요합니다).선택 설치를 위해 WIX msi에서 임베디드 도구를 실행하려고 시도했습니다.
현재 WIX SDK를 설치했으며 msi를 올바르게 빌드하는 WIX 프로젝트를 만들었습니다. CustomActions를 실행하여 notepad.exe를 실행하는 것과 같은 간단한 작업을 수행 할 수 있습니다.
첫 번째 문제 : 디렉토리에 설치하지 않을 파일을 설치 프로그램에 패키지하는 방법을 찾는 데 어려움이 있습니다. 나는 그것에 대한 참조를 찾았지만 아무 것도 그것을 명시 적으로 언급하지 않았다. 호스트 드라이브에 설치하지 않으면 'Directory'태그 안에 넣을 필요가 없습니다. 맞습니까?
두 번째 문제 : devcon.exe는 (내가 잘못하면 나를 교정 할 수 있음) 결과가 바뀌는 것처럼 보입니다. 아마도 많은 일을하고, 하드웨어 장치의 존재 여부에 따라 제한됩니다. 그래서 만약 내가 그것을 임베디드 얻을 수 있고 그것을 실행하려면, 어떻게 든 표준 출력 스트림에 출력을 가져 가야하고, 내가 찾고있는 특정 값에 대해 구문 분석해야합니다.
물론 파싱을 수행 할 수있는 배치 파일을 가지고 있고 내가 알아야 할 환경 변수를 설정했기 때문에 더 쉬울 것입니다.하지만 둘 다 포함 할 수 있다면, 임베디드 devcon.exe를 참조하도록 배치 파일을 얻은 다음 WIX에서 변수를 읽거나 어쩌면 WIX에서 하나 (또는 속성)를 설정 한 다음 배치 파일에서 설정할 수 있습니까?
어쩌면 나는 dll 사용자 지정 작업을 대신 만들어야합니까? dll 사용자 정의 액션에서 임베디드 실행 파일을 실행할 수 있습니까? 그런 다음 devcon.exe를 실행하고 거기에서 모든 구문 분석을 수행 한 다음 간단히 윅스 변수 또는 속성을 설정하여 다음에 수행 할 작업을 선택할 수 있습니다.
세 번째 문제 : 한 msi를 다른 msi에서 실행할 수 있습니다. 나는 아직까지는 안되지만, (http://softwareinstall.blogspot.com/2008/06/fun-with-msiembeddedchainer.html) 유망 해 보였습니다. 아직. 한 번에 하나의 문제는, 나는 확실히 이미 충분히 :)있어