InstallShield LE를 사용할 때 MSI에는 오래된 어셈블리 버전이 있지만 현재 버전의 다른 어셈블리가 포함되어 있습니다.

StackOverflow https://stackoverflow.com//questions/9675367

문제

나는 Visual Studio 2010, installShield le of total 프로젝트를 가진 솔루션을 사용하고 있습니다.

'파일'부분에 대한 기본 GUI의 기본 프로젝트 출력을 선택하고 프로그램 파일의 하위 디렉토리에 설치된 예쁜 표준을 선택했습니다.

설치 프로그램을 몇 주 전에 만들고 테스트 컴퓨터에 설치했으며 모든 것이 잘 작동했습니다. 그 이후로 해결책의 각 프로젝트를 변경했습니다. 오늘, 나는 조립 버전을 증가시키고 설치 프로젝트를 재구성하여 테스트를 계속하기 위해

설치 후 프로그램 파일 설치 디렉토리에서 내 프로젝트의 어셈블리 중 하나가 이전 버전 인 1.0.0.0을 나열하고 파일 날짜는 한 달에 오래되었습니다. 디렉토리의 다른 어셈블리는 현재 버전과 현재 수정 날짜를 보여줍니다.

솔루션 디렉토리와 설치 프로그램 프로젝트 폴더에서 모든 bin 및 obj 폴더를 삭제하려고 시도했습니다. 다시 설치했지만 문제가 남아 있습니다.

나는 Google을 검색했지만 문제가 홀수이므로 좋은 검색 구문이 어려웠습니다.

분명히 설치 프로그램 MSI에 포함될 모든 어셈블리의 최신 버전이 필요합니다.

도움이나 제안에 감사드립니다!

도움이 되었습니까?

해결책

다음 두 가지 작업을 수행해야합니다. MSI에서 실제 파일을 추출하여 업데이트 된 바이너리가 MSI에 있는지 여부를 알고 설치 프로그램이 어셈블리가 포함 된 구성 요소에 대해 Windows Installer에 대해 찾고있는 것을 찾는 자세한 로그를 얻습니다.문제의.BTW, 각 어셈블리 파일을 자체 구성 요소의 키 파일로 가져 왔습니까?Windows Installer는 경로에 대한 버전 업데이트 만 확인합니다.

다른 팁

읽으려는 :

기본 파일 버전 관리

참고 : AssemblyFileVersion을 비교했는지 확인하십시오.AssemblyFileVersion 속성이 중요한 조립 변환 속성이 아닙니다.전자는 GAC 및 강력한 이름 계약에 의해 사용되는 동안 나중에 Windows 기본 FileVersion 구조체에 매핑됩니다.

이전에 VS 설치 프로젝트와 동일한 문제가있었습니다.이전 DLL과 프로젝트를 참조하는 솔루션의 어셈블리 참조를 두 번 확인합니다.참조하는 버전을 보려면 속성 창을 볼 수 있습니다.내 경우 프로젝트 자체가 아닌 다른 프로젝트의 bin 폴더에서 DLL을 참조합니다.

당신이 모든 bin과 obj 폴더를 삭제 한 것을 알고 있지만, 아마도 시도할만한 가치가 있습니다.

문제 참조를 찾으면 제거하고 다시 추가하십시오.

덤프 InstallShield Rel="nofollow"> Wix ..

Wix는 예를 들었습니다.버전 검사를 제어하는 데 도움이되는 업그레이드 코드.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top