3

가끔은 여러 백엔드 웹 서비스에서 발생하는 문제를 디버깅하고 있으며 모든 프로젝트를 시작 프로젝트로 설정했습니다. F5를 누르면 F5를 눌렀을 때 모든 브라우저가 기본값으로 설정된 브라우저에서 새 탭을 시작합니다. 버튼을 클릭 할 수 있고 Project > Properties > Web > Start Action 설정을 모두 "유용하지 않습니다"로 설정하는 것이 유용 할 것입니다 페이지를 엽니 다. " 누가 나를 도울 수있는 매크로 또는 확장 기능을 알고 있습니까?Visual Studio의 모든 웹 프로젝트를 "페이지를 열지 않음"으로 설정하는 매크로/확장 프로그램이 있습니까?

답변

3

프로젝트가 ASP.NET 프로젝트인지 확인하는 방법을 모르겠다는 점을 제외하고 대부분 솔루션을 작성했습니다. 한 가지 방법은 Project.ExtenderNames에 "WebApplication"이라는 문자열이 있는지 확인하는 것이지만 가장 좋은 해결책은 아닌지 잘 모르겠습니다.

Sub ChangeAllWebProjectsStartActionToDontStartWebPage() 
    Dim project As EnvDTE.Project 
    If DTE.Solution.IsOpen Then 
     For Each project In DTE.Solution.Projects 
      NavProj(project) 
     Next 
    End If 
End Sub 

Sub NavProj(ByVal project As Project) 
    Dim outputPathProperty As EnvDTE.Property 
    Dim outputPath As String 

    If Not (project.ConfigurationManager Is Nothing) Then 
     ' It's a project! 
     Dim extenderNames As String() 
     extenderNames = project.ExtenderNames 
     If (Array.IndexOf(extenderNames, "WebApplication") >= 0) Then 
      project.Properties.Item("WebApplication.DebugStartAction").Value = 4 ' WebStartAction.NoStartPage 
     End If 
    Else 
     NavProjItems(project.ProjectItems) 
    End If 
End Sub 

Sub NavProjItems(ByVal projItems As ProjectItems) 
    Dim projectItem As EnvDTE.ProjectItem 

    If Not (projItems Is Nothing) Then 
     For Each projectItem In projItems 
      If Not (projectItem.SubProject Is Nothing) Then 
       ' Recurse, can be an Enterprise project in 
       ' Visual Studio .NET 2002/2003 or a solution folder in VS 2005+ 
       NavProj(projectItem.SubProject) 
      End If 
     Next 
    End If 
End Sub 

이는 다음과 같이 정의된다 WebStartAction을 기반으로합니다

enum WebStartAction 
    { 
     CurrentPage = 0, 
     SpecificPage = 1, 
     Program = 2, 
     URL = 3, 
     NoStartPage = 4 
    } 
+0

이 바른 길에 저를 가지고,하지만 난 솔루션 폴더에 문제가 다 퉜다. 나는 물건을 수정하기에 충분한 VB를 다시 배웠고, 인터넷에서 뻔뻔스럽게 복사하여 붙여 넣었다. 내 결과를 포함하도록 답변을 수정했습니다. –