1

MSVS 2012에 대한 추가 기능을 개발했습니다. 현재 열려있는 tsql 탭에 대한 연결 문자열을 가져와야합니다.Visual Studio 2012의 addin 연결 문자열

ISCriptFactory 인터페이스 멤버를 사용하여 MSVS 2010에서 연결 문자열을 가져 왔습니다 (ServiceCache.ScriptFactory.CurrentlyActiveWndConnectionInfo.UIConnectionInfo 속성 사용). IScriptFactory 인터페이스는 Microsoft.SqlServer.SqlTools.VSIntegration.VS.dll 어셈블리에 정의되어 있습니다.

SSMS 2012의 경우 동일한 인터페이스를 사용하지만 SqlPackageBase.dll 어셈블리에 정의되어 있습니다.

MSVS 2012 (Ultimate RTM) 설치된 폴더에 Microsoft.SqlServer.SqlTools.VSIntegration.VS.dll 또는 SqlPackageBase.dll 어셈블리를 찾을 수 없습니다.

또한 설치된 모든 MSVS 2012 어셈블리에서 CurrentlyActiveWndConnectionInfo 클래스와 IScriptFactory 인터페이스를 찾으려고했지만 아무 것도 발견되지 않았습니다.

MSVS 2012의 현재 tsql 탭에 대한 연결 문자열은 어떻게 얻을 수 있습니까?

답변

1

SQLEditors.dll ("... \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ Extensions \ Application \ SQLEditors.dll ") 어셈블리에는 필수 정보가 들어 있습니다. ScriptFactory.Instance.CurrentlyActiveWndConnectionInfo 속성을 사용하려고했지만 InvalidOperationException을 생성합니다.

public CurrentlyActiveWndConnectionInfo CurrentlyActiveWndConnectionInfo 
{ 
    get 
    { 
     STrace.Params("ScriptFactory", "ScriptFactory.CurrentlyActiveWndConnectionInfo", string.Empty, null); 
     if (ServiceCache.VSMonitorSelection == null) 
     { 
      STrace.LogExThrow(); 
      throw new InvalidOperationException(); 
     } 
     return this.GetCurrentlyActiveWndConnectionInfo(ServiceCache.VSMonitorSelection); 
    } 
} 

내가 널 ServiceCache.VSMonitorSelection의 문제를 생각 : 여기 CurrentlyActiveWndConnectionInfo 속성 분해의 결과입니다.

+0

이 경우 코드 스 니펫을 게시 할 수 있습니까? 나는 또한 연결 문자열을 검색 할 수있는 방법에 관심이 있어요 :) –