VC++ 프로젝트 (C# 프로젝트 포함)가 포함 된 응용 프로그램이 있습니다. 이전에 빌드가 완료되었을 때 (지난 1 년 정도) Visual Studio 2005는 VC++ 런타임 버전 8.0.50727.762를 대상으로하는 것으로 보입니다. 적어도, 그것은 Assembly.dll.intermediate.manifest 파일이 나에게 말하고있는 것이다 :Visual Studio 2005 대상 VC++ 런타임 버전을 설정하는 방법
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
이 버전 번호는 비주얼 스튜디오 2005 버전 번호와 일치합니다. 응용 프로그램은 웹 서버에 배포 할 때 잘 작동했습니다. 태양이 비치고 있었고, 새들이 노래를 불렀고 모든 것이 세상과 옳았습니다.
이제 변경된 사항이 있습니다. 나는 보안 패치, 모호한 Visual Studio 설정 등을 모릅니다. 이제 비주얼 스튜디오 2005는 VC++ 런타임의 잘못된 버전을 대상으로 할 것 같다
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
나는 웹 서버에 응용 프로그램을 배포 할 때, 나는이 응용 프로그램은 응용 프로그램 구성이 올바르지 않기 때문에 시작하지 못했습니다 지칠대로 지친 를 얻을. 응용 프로그램을 다시 설치하면이 문제가 해결 될 수 있습니다. (HRESULT 예외 : 0x800736B1) 오류가 발생했습니다.
이 문제는 이전 버전의 응용 프로그램을 다시 컴파일 할 때도 발생합니다. 은 전혀 변하지 않았습니다.은 솔루션에서 변경되었습니다. 빌드 프로세스의 일부로 솔루션의 전체 내용을 압축하여 보관합니다. 임시 디렉터리에 여러 개의 파일의 압축을 푼 다음 이전 매니페스트 파일이 8.0.50727.762를 참조하고 명령 줄에서 정확히 동일한 명령을 사용하여 다시 컴파일 한 다음 새 매니페스트 파일이 이제 8.0.50727.4053을 참조하는지 확인했습니다.
Microsoft Visual Studio 2005 버전 8.0.50727.762 (SP.050727-7600) 및 Microsoft Visual C++ 2005 77646-008-0000007-41610을 사용하고 있습니다.
Visual Studio가 VC++ 런타임의 이전 버전으로 되돌아가는 이유는 무엇입니까? 사용할 버전을 어떻게 지정합니까? 여기서 뭐가 잘못 됐어?
업데이트
OMG - 나는 그런 바보입니다. X.7> X.4, X.762 < X.4053 여기서 X는 버전 번호입니다. 따라서 8.0.50727.4053은 이고 최근은 8.0.50727.762입니다. 모든 것이 이제는 의미가 있습니다. 나는 이것을 내가 세계에서 가장 똑똑한 사람이라고 생각하는 모든 시간 동안 개인적인 알림으로 남겨두고있다. ...