2011-04-08 8 views
2

.NET 4.0으로 작성된 응용 프로그램을 DLL 파일로 컴파일해야합니다. 이 DLL 파일을 Windows Forms .NET 2.0 응용 프로그램에서 사용할 수 있어야합니다. 4.0 DLL에 몇 개의 문자열 값을 전달하는 것 외에는 실제로 많은 상호 작용을하는 응용 프로그램이 필요하지 않습니다. DLL은 UserControls로 변환 된 Windows 꽤 많은데, 다른 exe를 사용하지 않고 별도로 패키지해야하지 않고 2.0 응용 프로그램에서 UserControls를 표시 할 수 있도록 참조 할 수 있어야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? DLL에 대한 참조를 2.0 응용 프로그램에 추가하려고하면 나에게 오류가 발생하고 DLL이 최신 버전의 .NET에 내장되어 있으므로 그렇게 할 수 없다는 오류가 발생합니다. COM 개체가 들어오는 곳입니까? 모든 정보와 링크를 정말 고마워 할 것입니다, 감사합니다..NET 4.0 호출 WPF 클래스 라이브러리 .NET 2.0 응용 프로그램

답변

2

2.0 응용 프로그램에서 실제로 응용 프로그램을 호출 할 수있는 가장 좋은 방법은 2.0 응용 프로그램으로 컴파일하는 것입니다. Visual Studio 2010 (및 2008)은 다중 타겟 솔루션의 개념을 지원합니다. 즉, 다양한 버전의 CLR 용 프로젝트를 컴파일하는 데 사용할 수 있습니다.

나는 2.0

당신이 당신의 2.0 응용 프로그램에서 직접 DLL을 사용할 수있는이 방법을 한 번 4.0

  • 두 번

    • 일단 내 응용 프로그램을 컴파일하는 방법을 걸릴 것이다. 지저분한 COM 트릭이 필요하지 않습니다.

  • +0

    잘 그게. DLL은 .NET 4.0이어야하며 호출 응용 프로그램은 .NET 2.0 이상이어야합니다. 기본적으로 2 개의 응용 프로그램은 1로 패키지화해야하는 다른 프레임 워크를 기반으로합니다. – bflosabre91

    0

    .net 2.0에서 .ne 4.0을 호출하는 것이 실제로 가능합니다. 문제는 그게 아니지만, 나는 당신이 usercontrols를 보낼 수 있다고 생각하지 않는다!

    인스턴트 메신저에서 간단한 작업을 4.0에서 2.0 어셈블리로 전달하는 몇 가지 작업에서이 작업을 수행합니다. 트릭은 4.0 어셈블리를 ServicedComponent (COM +)로 등록한 다음이 어셈블리 사이의 인터페이스 (.net 20)를 공유하는 것입니다. 그런 다음 .net 2.0 어셈블리에서 ServicedComponent를 인스턴스화하고 "미들웨어"어셈블리에서 인터페이스의 인스턴스를 검색합니다.

    앞에서 설명한대로이 인터페이스를 통해서만 인터페이스를 전송할 수 있으며 UserControl처럼 복잡한 유형을 마샬링하는 것은 매우 어려울 것이라고 생각합니다.

    관련 문제