Ярлык Visual Studio «Просмотреть в браузере» на определенной странице?

Мы используем Visual Studio 2008 и хотели бы знать, есть ли способ создать ярлык (на клавиатуре или панели инструментов) для команды «Просмотр в браузере», но с определенной страницей из определенного (загруженного) проекта.

Мы всегда начинаем тестирование/отладку нашего приложения с «Somepage.aspx» из «Project-x». Я хотел бы сделать ярлык, который выполняет «Просмотр в браузере» с этой конкретной страницей/файлом из этого конкретного проекта. Поэтому, даже если я сейчас работаю над другим файлом в другом проекте (из того же решения), он все равно должен работать...

Кто-нибудь знает, возможно ли это, и если да, то как этого можно достичь?

Спасибо! В.


person WowtaH    schedule 22.03.2010    source источник


Ответы (2)


Вы правы, мой первый ответ открывает страницу в браузере, но не запускает веб-сервер. Попробуйте следующий макрос. Он использует команду ViewinBrowser, поэтому он должен работать должным образом.

Sub OpenMyPage()
    Dim solutionExplorerHier As EnvDTE.UIHierarchy
    solutionExplorerHier = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindSolutionExplorer).Object
    Dim oldSelected As Object = solutionExplorerHier.SelectedItems
    solutionExplorerHier.GetItem("MySolution\MyProject\HTMLPage1.htm").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ExecuteCommand("File.ViewinBrowser")

    'restore selected items
    Dim item As EnvDTE.UIHierarchyItem
    For Each item In DirectCast(oldSelected, Array)
        item.Select(vsUISelectionType.vsUISelectionTypeSelect)
    Next
End Sub    

Просто измените путь в методе GetItem. Это полный путь к файлу, который вы видите в обозревателе решений. Этот макрос предполагает, что файл является частью вашего решения.

person Peter Macej    schedule 23.03.2010
comment
Привет, Питер .. Еще раз спасибо .. это работает лучше, чем первое, однако ( :) ) оно работает только тогда, когда фокус уже находится в обозревателе решений, он не работает, когда фокус находится в редакторе кода. Любое предложение по этому поводу? - person WowtaH; 24.03.2010
comment
Просто добавьте следующее в начало макроса: Dim oldActiveWindow As EnvDTE.Window = DTE.ActiveWindow DTE.Windows.Item(EnvDTE.Constants.vsWindowKindSolutionExplorer).Activate() и следующее в конце: oldActiveWindow.Activate() - person Peter Macej; 24.03.2010
comment
Работает как шарм .. Спасибо! - person WowtaH; 24.03.2010

Следующий макрос открывает определенную страницу в браузере по умолчанию:

Sub OpenMyPage()
    Try
        Dim url As String
        url = "C:\HTMLPage1.htm"
        'enclose URL in double quotes
        url = """" & url & """"
        DTE.ExecuteCommand("nav", url & " /new /ext")
        'nav is alias for View.ShowWebBrowser command
        'Syntax:
        'View.ShowWebBrowser URL [/new][/ext]
        '
        '/new 
        ' Optional. Specifies that the page appears in a new instance of the Web browser.
        '/ext 
        ' Optional. Specifies that the page appears in the default Web browser outside of the IDE.
    Catch ex As Exception
    End Try
End Sub

Создайте макрос и измените переменную URL. Затем вы можете создайте панель инструментов или кнопку меню или назначьте ему сочетание клавиш.

person Peter Macej    schedule 23.03.2010
comment
Привет, Питер... Выглядит многообещающе. Он работает, однако он не запускает мой веб-сервер разработки, как это делает контекстное меню Visual Studio «Просмотр в браузере» перед открытием браузера для отображения страницы. Любые предложения по этому поводу? Спасибо! - person WowtaH; 23.03.2010