2017-01-18 2 views
1

.Net Framework 3.5 버전으로 빌드 된 프로젝트가 있습니다. 우리는이 프로젝트가 .Net Framework의 4.0 버전이되도록 업데이트했으며, 모든 문제를 해결 한 후에 웹 서비스 초기화 중 상당한 지연을 발견했습니다..Net Framework 3.5 시작 프로젝트에서 .NET Framework 4.5 프로젝트 참조 활용

프로젝트를 3.5 프레임 워크로 되돌리고 지연 문제가 수정되었습니다. 4.5 Framework dll을 사용하는 두 번째 프로젝트가 있으므로 두 번째 프로젝트를 4.5 버전으로 빌드해야합니다.

나는이 질문이 이전에 요청되었으며, 그 대답은 항상 가능하지 않다는 것을 알고있다. 그러나 아래의 msdn 포럼에서 제공되는 단계에 따라 실제로 정확한 구조가 작동했기 때문에 가능했다. 대신 표시된 4.0 대신에 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"> 런타임을 사용합니다.

https://social.msdn.microsoft.com/Forums/vstudio/en-US/36b1a209-55d5-4323-91dc-0919ba2e1d03/using-methods-of-a-net-40-dll-by-net-35sp1-client?forum=clr

문제는 우리가 우리의 웹 서비스에 새로운 서비스 요청을 다시 추가하고, 지금 우리가 프로젝트 참조를 액세스 할 때, 그것이 만들어진 프로젝트를 액세스하는 것을 오류가 발생합니다 새로운 버전에서는 BadImageFormatException을 제공합니다.

이 정확한 오류는 위의 포럼에서 논의, 당신은 표준 2.0 참조 및 <supportedRuntime> 년대로 <startup> 섹션에 4.0 참조를 포함 할 필요가 있다고 언급, 우리는 그들 모두를했다.

<startup> 
    <supportedRuntime version="v2.0.50727"/> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
</startup> 

저는 app.config가 두 런타임을 모두로드하지 않는다고 생각합니다. 나는 언제 우리가 어떤 3.5 프레임 워크 참조를 액세스하려고

<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    <supportedRuntime version="v2.0.50727"/> 
</startup> 

우리는 에러가 발생하기 시작 .... 우리는 다음과 같은 supportedRuntimes의 순서를 전환하면이 때문에 일어나고 있다고 생각합니다.

이제 supportedRuntime이 추가되는 순서가 중요합니다. 두 번째 코드 집합에서 3.5 버전 프레임 워크보다 4.5 버전을 사용하는 것이 더 좋지만 가능하면 3.5 Framework을 사용해야합니다. 여기서 근본적인 문제가 될 수는 있지만, 제가 말했듯이 우리는이 작업을했습니다. 불행히도 코드 세트의 레이블을 만들지 않았으므로 작업 코드 세트로 돌아갈 수는 없습니다.

누구나 내가 놓칠 수있는 것이 무엇인지 생각해 볼 수 있습니까? 아니면 누군가가 특별히 vb.Net에서 4.5 Framework를 사용하도록 코드 세트를 말할 수 있는지 말해 줄 수 있습니까?

+0

"문제는 웹 서비스에 새로운 서비스 호출을 다시 추가하고 프로젝트 참조에 액세스하려고 할 때입니다."웹 서비스가 있으면 혼란 스럽습니다. 그것은? 왜 웹 서비스를 만든 다음 프로젝트를 참조하려고합니까? 에뮬레이션 모드로 실행 한 다음 대신 클라이언트가이를 사용하도록 설정할 수 있습니다. 프레임 워크를 혼합하려고 시도하는 것은 나쁜 생각입니다. 일반적으로 더 낮은 라이브러리를 높은 라이브러리로 참조 할 수 있지만 다른 방법은 문제를 묻는 것입니다. – djangojazz

답변

0

저는 프로세스 당 하나의 런타임 만로드되기 때문에 적어도 하나의 런타임을 지원하기를 바랍니다.

DotLisp REPL에서 최신 항목에 액세스 할 수 있도록 최신 프레임 워크에서 실행되는 3.5 컴파일 된 DotLisp로 항상 구성을 사용하므로 상당히 확신합니다.

관련 문제