Share via


방법: 한 솔루션에 여러 프로젝트 게시

한 솔루션에 여러 프로젝트를 포함할 수 있지만 ClickOnce 배포의 경우 한 번에 한 프로젝트만 게시할 수 있도록 제한됩니다. 솔루션에 여러 프로젝트가 포함된 경우에는 프로젝트를 하나씩 게시하는 방법이 번거로울 수 있습니다. 이 절차에서는 매크로를 사용하여 솔루션의 프로젝트를 모두 게시하는 프로세스를 자동화하는 방법을 보여 줍니다.

게시 매크로를 만들려면

  1. 매크로 탐색기를 엽니다. 도구 메뉴에서 매크로를 클릭하고 매크로 탐색기를 클릭합니다.

  2. 새로운 매크로 모듈을 만듭니다. 매크로 탐색기에서 MyMacros 노드를 선택합니다. 도구 메뉴에서 매크로를 클릭하고 새 매크로 모듈을 클릭합니다. 모듈의 이름을 PublishAllProjects로 지정합니다.

  3. 매크로 탐색기에서 MyMacros 노드를 열고 PublishAllProjects 모듈을 두 번 클릭하여 엽니다. 도구 메뉴에서 매크로, 매크로 IDE를 차례로 클릭하여 열어도 됩니다.

  4. 매크로 IDE에서 해당 모듈의 Import 문 뒤에 다음 코드를 추가합니다.

    Public Module PublishAllProjects
        Sub PublishAllProjectsInSolution()
            ' Before using this macro, the certficate and security zone must be set.
            ' You can do this by publishing the projects using the VS IDE.
            Dim slnbld2 As SolutionBuild2 = CType(DTE.Solution.SolutionBuild, SolutionBuild2)
    
            'Save changes to all projects and clean.
            For Each proj As Project In DTE.Solution.Projects
                proj.Save()
            Next
            slnbld2.Clean(True)
    
            For Each proj As Project In DTE.Solution.Projects
                'Verify project is a windows application or console application before continuing
                Dim outputType As Integer = proj.Properties.Item("OutputType").Value
                If outputType <> 0 AndAlso outputType <> 1 Then
                    Continue For
                End If
    
                'GenerateManifests and SignManifests must always to true for publishing to work. 
                proj.Properties.Item("GenerateManifests").Value = True
                proj.Properties.Item("SignManifests").Value = True
                proj.Save()
    
                slnbld2.BuildProject(proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, proj.UniqueName, True)
    
                'only publish if build was successful.
                If slnbld2.LastBuildInfo <> 0 Then
                    MsgBox("Build failed for " & proj.UniqueName)
                Else
                    slnbld2.PublishProject(proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, proj.UniqueName, True)
                    If slnbld2.LastPublishInfo = 0 Then
                        MsgBox("Publish succeeded for " & proj.UniqueName)
                    Else
                        MsgBox("Publish failed for " & proj.UniqueName)
                    End If
                End If
            Next
    
        End Sub
    End Module
    
  5. 매크로 IDE를 닫습니다. 포커스가 Visual Studio로 돌아갑니다.

솔루션의 모든 프로젝트를 게시하려면

  1. Visual Basic Windows 응용 프로그램 프로젝트를 만듭니다. 파일 메뉴에서 새 프로젝트를 클릭합니다.

  2. 새 프로젝트 대화 상자의 Visual Basic 노드에서 Windows 응용 프로그램을 선택합니다. 프로젝트 이름을 MultiProj로 지정합니다.

  3. MultiProj 솔루션에 둘 이상의 Windows 응용 프로그램 프로젝트를 추가합니다. 프로젝트 이름을 Proj1 및 Proj2로 지정합니다.

  4. 먼저 솔루션의 각 프로젝트를 게시합니다. 매크로를 사용하려면 각 프로젝트에 대해 ClickOnce 매니페스트에 서명하고 보안 영역을 설정해야 합니다. 매크로를 사용하기 전에 IDE(통합 개발 환경)를 사용하여 각 프로젝트를 게시하면 게시 프로세스에서 매크로를 실행하는 데 필요한 ClickOnce 매니페스트에 서명하고 보안 영역을 설정합니다.

    솔루션 탐색기에서 MultiProj를 선택합니다. 프로젝트 메뉴에서 속성을 선택합니다. 프로젝트 디자이너에서 게시 탭을 클릭합니다. 게시 페이지에서 publish\의 게시 위치를 지정하고 지금 게시를 클릭합니다.

    솔루션의 다른 프로젝트에 대해 이 단계를 반복합니다.

  5. Visual Studio 명령 창에서 매크로를 호출하여 MultiProj를 다시 게시합니다. 명령 창을 보려면 보기 메뉴에서 다른 창, 명령 창을 차례로 클릭하거나 Ctrl+Alt+A를 누릅니다. 명령 창에 macros를 입력합니다. 자동 완성 기능을 통해 사용할 수 있는 매크로 목록이 제공됩니다. 다음 매크로를 선택하고 Enter 키를 누릅니다.

    Macros.MyMacros.PublishAllProjects.PublishAllProjectsInSolution

  6. 각 프로젝트의 게시 프로세스가 완료되면 "MultiProj\MultiProj.vbproj을(를) 게시했습니다."라는 메시지가 표시됩니다. 각 메시지 상자에서 확인을 클릭합니다.

  7. 각 프로젝트 디렉터리의 게시 하위 디렉터리를 살펴봅니다. 매니페스트, setup.exe 및 게시 웹 페이지 파일이 표시됩니다.

참고 항목

작업

방법: 매크로 편집 및 프로그래밍 방식으로 만들기

방법: 특정 로캘이 지정된 프로젝트 게시

참조

매크로 탐색기 창

개념

ClickOnce 응용 프로그램 게시

기타 리소스

매크로 개발 환경