2012-03-17 2 views
0

을 발견 일치하지 않습니다 나는 내가 오류 로그 파일 중 하나에 다음있어 내 C# 응용 프로그램을 실행할 때 FileNotFoundException이 오류의 원인을 조사하는 어셈블리 바인딩 로그 뷰어를 사용하는 경우 :어셈블리 참조 어셈블리 정의가

LOG: Post-policy reference: msvcm90, Version=9.0.30729.4974, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
    LOG: Did not find assembly in DEVOVERRIDE path C:\Documents and Settings\All Users\Application Data\Red Gate\.NET Reflector\DevPath 
    LOG: GAC Lookup was unsuccessful. 
    LOG: Attempting download of new URL file:///F:/Stuff/Muaz/Programming/C#/Spatial and Temporal Research/Spatial and Temporal Research/bin/Debug/msvcm90.DLL. 
    LOG: Assembly download was successful. Attempting setup of file: F:\Stuff\Muaz\Programming\C#\Spatial and Temporal Research\Spatial and Temporal Research\bin\Debug\msvcm90.dll 
    LOG: Entering run-from-source setup phase. 
    LOG: Assembly Name is: msvcm90, Version=9.0.30729.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
    WRN: Comparing the assembly name resulted in the mismatch: Revision Number 
    ERR: The assembly reference did not match the assembly definition found. 
    ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated. 

은 내가 app.config 파일에 바인딩 직접 사용하려고 :

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
    <runtime> 
     <assemblyBinding> 
      <dependentAssembly> 
       <assemblyIdentity name="msvcm90" 
            publicKeyToken="b03f5f7f11d50a3a" /> 
       <bindingRedirect oldVersion="9.0.30729.4974" 
           newVersion="9.0.30729.1"/> 
      </dependentAssembly>   
     </assemblyBinding> 
    </runtime> 
</configuration> 

하지만 같은 오류가 발생합니다. 나는 dll 파일 msvcm90을 찾으려고했지만 버전 9.0.30729.4974를 찾을 수 없었다. 이 문제를 해결하는 다른 방법은 없습니까? 감사.

답변

1

VS2008과 함께 제공되는 관리되는 C 런타임 지원 DLL에 종속되어 있습니다. 제공 한 버전은 매우 오래되었고 사용자가 지정한 디렉토리에 속하지 않으므로 Windows 사이드 바이 캐시 (c : \ windows \ winsxs)에 배포해야합니다. 파일을 먼저 삭제하면 운이 좋을 수도 있습니다.

가장 좋은 방법은이 지원 DLL을 사용하는 제품 또는 DLL의 소유자에게 적절한 설치 절차를 요청하는 것입니다. 다음으로 가장 좋은 것은 VC++ 지원 런타임 라이브러리를 설치하는 것입니다. 설치자 from here을 다운로드 할 수 있습니다. 올바른 버전인지, 출시 이후 많은 보안 패치가 있는지 모르겠습니다. 설치 후 Windows Update를 실행하십시오.

+0

감사합니다. c : \ wondows \ winsxs에서 dll 버전을 발견하여 폴더에 복사했습니다. 어셈블리 파일 뷰어에서 로그 파일에 오류가 없지만 여전히 오류가 발생합니다 : "System.IO.FileNotFoundException : 파일 또는 어셈블리 'Autodesk.Navisworks.Timeliner.dll'또는 해당 종속성 중 하나를로드 할 수 없습니다. 모듈을 찾을 수 없습니다. " 나는 여기에 게시 : http://stackoverflow.com/questions/9729691/an-unhandled-exception-of-type-system-io-filenotfoundexception-occurred-in-unk 난 아직도 해결할 수 없습니다. 나는하려고합니다 Logged 당신이 내게 말했듯이 윈도우 업데이트를 실행하고 결과를 보자. – mj1261829

+0

그런 어셈블리는 msvcm90.dll 이상으로 많은 의존성을 가질 것이다. 라이센스를 확인하고 Autodesk에 지원을 요청하십시오. –