동시 자동화 호환성 문제
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.1
및VisualStudio.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.1
및VisualStudio.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에서 응용 프로그램을 포팅하는 경우에는 이러한 변경 사항을 적용해야 합니다(가능한 경우).