如何:发布一个解决方案中的多个项目

本文提供了一个Visual Studio宏示例,用于自动化发布包含多个项目的解决方案。宏能够处理设置证书、安全区域、生成和签名清单等步骤,从而简化发布流程。实例包括创建宏模块、编写代码实现自动化发布、以及在解决方案中应用此宏来发布所有项目。
摘要由CSDN通过智能技术生成
 

一个解决方案可以包含多个项目,但 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. 将另外两个 Windows 应用程序项目添加到 MultiProj 解决方案中。将它们分别命名为 Proj1Proj2

  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 和发布网页文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值