2014-02-14 2 views
2

Я создаю внутренний инструмент для разработчиков. То, что я хотел бы сделать, это добавить кнопку в свой пользовательский интерфейс, который при нажатии откроет конкретный файл в Visual Studio для более расширенного редактирования. Я хотел бы использовать любое VS-окно, которое может быть уже открыто.Программно открыть файл в visual studio

Есть ли способ сделать это?

Дальнейшее разъяснение. Это настраиваемое приложение winform, которое редактирует специальные XML-файлы. Иногда пользователю нужно перейти на VS, чтобы сделать более продвинутый материал. Я хотел бы просто открыть для них файл вместо того, чтобы искать его в VS.

+0

Существует также автоматизация/расширяемости API: http://msdn.microsoft.com/en-us/library/vstudio/envdte.itemoperations.openfile(v=vs. 110) .aspx –

ответ

6

Вы можете позвонить devenv.exe для запуска VisualStudio. если вы укажете путь к файлу devenv.exe в качестве аргумента, визуальная студия откроет данный файл.

Команда: devenv /edit myfile.xml

Вы можете запустить выше команду, используя Process класс.

Попробуйте:

private void button1_Click(object sender, EventArgs e) 
{ 
    Process process = new Process(); 
    ProcessStartInfo startInfo = new ProcessStartInfo("devenv.exe", "/edit c:\\Data.txt"); 
    process.StartInfo = startInfo; 
    process.Start(); 
} 
+0

Это открывает новый экземпляр VS. Любая идея, как отправить эту команду на уже запущенный экземпляр devenv? – Matt

+0

Да, он открывает новый экземпляр VS каждый раз, я думаю, нам нужно передать аргументы уже запущенному VS instace. –

+2

Вам нужно предоставить/Изменить аргумент, чтобы открыть его в том же экземпляре. Глянь сюда. http://msdn.microsoft.com/en-us/library/aa991989.aspx – skolte

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