2010-05-06 4 views
0

.Net2.0 전용 환경에서 어셈블리가 .Net3.5 메서드를 호출하는 위치에서 내가 생각하는 문제를 발견했습니다. (.Net 서비스 팩이나 .Net 3.5가 설치되어 있지 않음)확인 방법 .NET 2.0 어셈블리를 호출 할 때 .Net 3.5

FXCop처럼 실행할 수있는 프로그램이 있는지 알고 싶습니다. 사용 가능한 메서드 호출 만 수행하도록 어셈블리를 검사합니다. 추가 된 3.5 확장없이 .NET 2.0에서.

저는 전에 이것에 물 렸습니다. 어셈블리를 검사하기 전에 이러한 종류의 문제를 막기 위해 검사 할 수있는 방법을 찾고 싶습니다.

요구 사항이 없다고 말하지 마십시오. 닷넷 3.5이 부분에 가고 싶습니다. 지금은 불가능합니다.

답변

2

".NET 3.5 방법"과 같은 것은 없으며 .NET 3.5 어셈블리 만 있습니다. .NET 3.0과 마찬가지로 .NET 2.0 릴리스에 추가되었습니다. 기본 2.0 클래스와 CLR은 변경되지 않았습니다. Visual Studio에서 대상 프레임 워크 버전 기능을 사용하면 .NET 3.5에서만 사용할 수있는 형식의 메서드를 쉽게 사용할 수 있습니다.

글쎄, 그건 회사 라인이야. 꽤 정확하지는 않지만 실제로 선택된 몇 군데에서 2.0 어셈블리를 변경했습니다. [AssemblyVersion]을 변경하지 않고, 아주 장난 꾸러기. 가장 좋은 예는 WaitHandle.Wait (int)입니다. 원래 2.0 버전에는 없었지만 3.5에 추가되었습니다.

그들은 .NET 2.0 SP1과 .NET 3.5를 동시에 출시함으로써이 문제를 해결했습니다. 에 추가 된 방법이 있습니다. 다시 .NET 3.5 SP1, .NET 2.0 SP2와 동시 발생. Fwiw,이 서비스 팩은 누락 된 메서드를 추가하는 것이 아니라 알려진 안정성과 보안 문제를 해결합니다.

.NET 2.0 RTM에서 코드가 실패하는지 확인할 수있는 도구가 없습니다. 클라이언트는 서비스 팩을 배포해야했습니다. 그들은 피하기 힘들다. 업데이트 배포를 거부하는 클라이언트를 지원하려면 처녀 .NET 2.0 설치에서 코드를 테스트해야합니다.

+0

그 atm을 통해 작업하고 있습니다. 그저 .net 전체 제거가 다른 곳의 수정 프로그램이 없다고 기대하고 있습니다. 업데이트가 수정되었습니다. 이러한 검사를 수행 할 수있는 사용자 시스템에 대한 액세스 권한이 없습니다. –

0

Visual Studio에서 응용 프로그램의 속성에 대상 프레임 워크를 지정할 수 있습니다. 응용 프로그램 탭으로 이동하여 "대상 프레임 워크"를 ".NET Framework 3.5"에서 ".NET Framework 2.0"으로 변경합니다. 다시 컴파일하면 컴파일러는 2.0 항목 이외의 것을 참조하려고하면 오류가 발생합니다.

+0

저는 VS2005만을 사용하고 있습니다. 그래서 그 옵션을 얻지는 못합니다 :-( –

관련 문제