2011-12-26 2 views
0

C# 프로젝트 어셈블리에서 Oracle.DataAccess.dll을 참조하려고합니다. 프로젝트를 실행할 때 나는 다음과 같은 오류가 발생합니다 : 바로 참조를 클릭하고 나는이 프로젝트에 포함 된 폴더에있는 DLL의 복사본에 내가 이동 어셈블리를 추가 할 때 때문에어셈블리 참조가 지정된 경로와 다른 경로로 결정됩니다.

Could not load file or assembly 'Oracle.DataAccess, Version=2.112.2.50, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

정말 혼란 스러워요 참조를 추가하십시오. 내가 참조의 속성을 볼 때,하지만, 그것은

C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\Oracle.DataAccess.dll

있는지의 경로가 충분히 해당 이름이있는 DLL이 보여 주지만 이전 버전입니다. 이 참조가 내가 추가 할 때 지정한 경로를 가리 키지 않는 이유는 무엇입니까? 그리고 지정한 위치에서 dll을 사용하려면 어떻게해야합니까?

+1

또한 .NET 대는 별도의 GAC 자신의 닷넷 4.0이 2.0 방법이있다 인 GAC 보거나 사용 잘 http://stackoverflow.com/questions/2284017/two-different-assembly-versions-the-located-assemblys-manifest-definition-does – MethodMan

답변

3

우리는 우리가 특정 버전이 내장 된 응용 프로그램에 문제가되지 않는다는 것을 알고있는 경우이 같은 문제를 해결하기 위해 몇 가지 단계를 수행하십시오

1) 프로젝트 내에서 참조의 속성에서, 특정 버전을 확인 속성이 False로 설정됩니다.

2) 프로젝트를 메모장이나 텍스트 편집기에서 편집하십시오. DLL 참조를 찾고 모든 버전 및 키 정보를 제거하고 힌트 경로가 파일 복사본을 가리키는 지 확인하십시오. 예를 들어 : - 3.5 체크 아웃이 링크 등이 Oracle.DataAccess.dll와 버전 관리 문제 같은 소리

<Reference Include="Oracle.DataAccess"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\..\Assemblies\Oracle.DataAccess.dll</HintPath> 
</Reference> 
+0

고마워! – user12345613

2

Visual Studio는 참조 할 때 약간 희박 할 수 있습니다. 여러 번 우리는 프로젝트 파일을 직접 편집해야합니다. 참조의 속성을 직접 설정한다고해서 반드시 달라지지는 않습니다. 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트 파일 편집을 선택한 다음 변경하십시오. 그것은 붙어 있어야합니다.

+0

나는 그것이 Visual Studio 이상이라고 생각한다. 참조가 어떻게 처리되는지는 [어셈블리 프로빙] (http://msdn.microsoft.com/en-us/library/yx7xezcf%28v=VS.100%29.aspx)이라고하는 프로세스입니다. –

+0

동의 함. 그러나 내가 말한 것은 여전히 ​​사실입니다. 때로는 설정이 그대로 유지되지 않고 프로젝트 파일을 변경하면 문제가 해결됩니다. –

관련 문제