동시 자동화 호환성 문제

Visual Studio .NET 2002와 Visual Studio .NET 2003을 동시에 실행하려면 다음과 같은 호환성 문제를 고려해야 합니다.

  • Visual Studio .NET 2003에서는 같은 솔루션 및 DTE 클래스에 대해 버전 독립적인 ProgID와 버전 종속적인 ProgID를 devenvCP.rgs 파일에 함께 등록합니다. 이 때 버전에 독립적인 ProgID는 Visual Studio .NET 2003의 버전 종속적인 ProgID(예: VisualStudio.Solution.7.1VisualStudio.DTE.7.1)를 가리키도록 설정됩니다(CurVer 키 사용).

    따라서 버전 독립적인 ProgID를 사용하는 모든 CoCreateInstance 호출은 시스템에 Visual Studio .NET 2002가 설치되어 있는지 여부와는 상관 없이 Visual Studio .NET 2003의 인스턴스를 만듭니다.

  • Visual Studio .NET 2003은 또한 Visual Studio .NET 2003 IDE의 ClsID에 VisualStudio.DTE.7.1VisualStudio.Solution.7.1에 대한 매핑을 설치합니다. Visual Studio .NET 2003의 인스턴스를 만들려면 CLSIDFromProgID를 사용하고, 반환되는 ClsID에 CoCreateInstance를 호출해야 합니다.

  • Visual Studio .NET 2002와 Visual Studio .NET 2003 간의 동시 작업이 가능하려면 IDE의 새 인스턴스(devenv.exe)에 버전 종속적인 progID를 사용해야 합니다. 즉, Visual Basic .NET 2003 또는 Visual C# .NET 2003에서 Visual Studio .NET의 새 인스턴스를 만들려면 EnvDTE.DTE가 아니라 CreateObject를 호출해야 합니다. 예를 들어, 다음 명령을 사용하는 대신

    new Microsoft.VisualStudio.EnvDTE.DTE()
    

    다음 명령을 사용해야 합니다.

    inst = Microsoft.VisualBasic.Interaction.CreateObject _
     ("VisualStudio.DTE.7.1")
    

    Visual Studio .NET 2002에서 응용 프로그램을 포팅하는 경우에는 이러한 변경 사항을 적용해야 합니다(가능한 경우).

참고 항목

추가 기능 등록 | 추가 기능 및 마법사 만들기