Visual Studio 2012中addin的连接字符串

时间:2012-09-17 09:56:37

标签: c# visual-studio add-in visual-studio-2012 visual-studio-addins

我为MSVS 2012开发了一个插件。我需要获取当前打开的tsql选项卡的连接字符串。

我使用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 个答案:

答案 0 :(得分:1)

SQLEditors.dll(“... \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ Extensions \ Application \ SQLEditors.dll “)程序集包含所需信息。 我尝试使用ScriptFactory.Instance.CurrentlyActiveWndConnectionInfo属性,但它生成InvalidOperationException。 以下是CurrentlyActiveWndConnectionInfo属性反汇编的结果:

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);
    }
}

我认为null ServiceCache.VSMonitorSelection中的问题。