클라이언트 컴퓨터에 Windows 서비스를 설치하는 MSI가 있습니다. Windows 서비스는 서버의 웹 서비스를 호출하여 작업을 수행합니다. 처음에는 MSI와 웹 서비스가 모두 .NET 2.0 프레임 워크를 사용하여 빌드되었습니다.MSI 설치시 .NET 4.0 업그레이드 오류 - XML에 예상 속성 오류가 없습니다.
지난 분기에 우리 시스템을 .NET 4.0으로 업그레이드했습니다. 우리의 웹 서비스는 여전히 ASP.NET, 즉 asmx (및 WCF가 아님)입니다. 또한 MSI를 설치하기위한 전제 조건으로 프레임 워크 4.0을 설정했습니다. 고객의
하나는이 문제를보고 :
클라이언트는 .NET 프레임 워크 2.0을 사용하고, 그리고 자신의 시스템에 설치된 MSI의 이전 버전을했다. .NET Framework 4.0 버전의 MSI를 설치하려고 할 때, 전제 조건 때문에 프레임 워크 4.0을 설치하라는 메시지가 표시되었습니다. 프레임 워크 설치가 끝나면 MSI를 설치하려고 시도했으며이 오류가 발생했습니다. 누군가 나를 해결책으로 안내 할 수 있습니까? 필요한 경우 세부 정보를 제공 할 수 있습니다.
편집 1 :
는 더 많은 연구에, 나는 내 AppName.installstate 파일입니다 발견했다. 제거는이 파일을 제거하지만 업그레이드는 수행하지 않습니다. 파일이 설치 디렉토리에 있습니다. 자세히 보면 파일 내용에 "http://schemas.xmlsoap.org/soap/envelope/:Envelope"이 표시됩니다. 모든 포인터가 크게 감사하겠습니다.
편집 2 :
사용자 지정 작업은 설치가 AppName.installstate 파일 및 사용자 정의 액션 제거는 파일을 삭제 만듭니다. 제 경우에는이 파일에 아무 것도하지 않는 MSI 업그레이드를하고 있습니다. 2.0과 4.0 (둘 다 수동으로 설치)의 installstate 파일을 비교했을 때 XML 구문, 스키마 및 내용에 큰 차이가 있음을 알 수있었습니다. 이유는 직렬화 오류가 발생했습니다. 이제 AppName.installstate가 업그레이드 될 때 덮어 쓰지 않는 이유를 알아야합니다. Google을 많이하고 있지만 아무데도 착륙하지 못했습니다. MSI 설치 로그를 보았으나 유용한 정보는 없습니다.
Windows Installer *는 installstate 파일을 생성하지 않습니다. Installer 클래스/InstallUtil 사용자 정의 액션 (서비스 내부). –