2013-07-23 4 views
2

У меня есть надстройка Visual Studio, и я хочу открыть решение. Как открыть решение в текущем экземпляре Visual Studio. Какие-нибудь советы? Моя надстройка написана на VB.NET.Откройте решение Visual Studio с надстройкой Visual Studio

До сих пор у меня есть myStreamWriter.WriteLine("start mySolution.sln /D ."), который записывается в командную строку. Это открывает решение в Visual Studio 2012, однако оно открывается в новом экземпляре Visual Studio, а не в экземпляре, который уже запущен. Какие-нибудь советы?

+0

До сих пор у меня есть «myStreamWriter.WriteLine» («запустите mySolution.sln/D.»), Который записывается в командную строку. Это открывает решение в Visual Studio 2012, однако оно открывается в новом экземпляре Visual Studio, а не в экземпляре, который уже запущен. Какие-нибудь советы? – janovak

ответ

2

Вы должны использовать команду ExecuteCommand для выполнения стандартной команды File.OpenProject. Как и для использования Файл>Открыть>Решение.

Что-то, как это будет делать в C#:

string path = @"C:\Users\xyz\Documents\Visual Studio 2010\Projects\MyAddin1\MyAddin1.sln"; 
path = "\"" + path + "\""; 
_applicationObject.ExecuteCommand("File.OpenProject", path); 

Что переводится VB.NET:

Dim path As String 
path = """C:\Users\xyz\Documents\Visual Studio 2010\Projects\MyAddin1\MyAddin1.sln""" 
DTE.ExecuteCommand("File.OpenProject", path) 

Если вы хотели бы знать, является ли закончил команду, вы должны создать EventHandler для команды.

+0

Это действительно открывает решение, но оно не попадает в список файлов | Последние проекты и решения ... У вас есть идеи, почему? –

+0

Я могу только догадываться, но это может быть связано с тем, что File.OpenProject используется в качестве последующей операции при открытии решений в VS и при выполнении других команд, выполняемых рядом с командой меню, или VS, используя другую команду из меню или с начальной страницы. – Ursegor

Смежные вопросы