CI_VSTS在单个解决方案中为每个项目发布不同的Web工件

时间:2018-07-22 23:03:33

标签: azure-devops publish

我有一个CI管道(VSTS),可以在其中构建整个解决方案,其中在一个工件中包含两个网站项目。我要做的是构建整个解决方案,然后为每个项目创建发布工件。 例如 Project_website1的一个工件 Project_website2的一个工件 谢谢。我在StackOverflow中尝试了类似的主题,但对我没用

3 个答案:

答案 0 :(得分:1)

您可以使用两个发布工件任务,并且可以将多个任务复制文件以在VSTS构建中实现任意数量的工件。例如,假设您拥有单个项目的当前工件,该项目由_PublishedWebsites \ MVS5WebApp(可部署XCopy的网站)和_PublishedWebsites \ MVS5WebApp_Package(Web部署程序包)组成。 enter image description here  如果要将这两部分分成两个工件,则可以使用两个Publish Artifact任务,如下所示,每个任务都指定要发布的确切路径(该路径不支持通配符,您只需要指定需要发布的文件夹即可)

enter image description here enter image description here

结果将是两个工件 enter image description here

您可以从帖子here中获得更多的想法。 另外,this post可能对您了解更多可能性很有用。

答案 1 :(得分:0)

要分别发布两个网站项目的工件,只需使用两个VS构建任务和两个Publish Build Artifacts任务来分别构建和发布两个网站。

enter image description here

第一个VS构建任务和Publish Build Artifacts任务用于website1,第二个VS构建任务和Publish Build Artifacts任务用于website2。每个任务的详细配置如下:

  • 网站1的VS构建任务(将网站1的软件包存储在$(build.artifactstagingdirectory)\web1中)

    enter image description here

  • 发布网站1的构建工件(将网站1的工件从$(build.artifactstagingdirectory)\web1发布到工件web1):

    enter image description here

  • 网站2的VS构建(将网站2的软件包存储在$(build.artifactstagingdirectory)\web2中)

    enter image description here

  • 发布网站2的构建工件(将网站2的工件从$(build.artifactstagingdirectory)\web2发布到web2):

    enter image description here

然后,您可以分别获得两个项目的构建工件:

enter image description here

答案 2 :(得分:0)

这就是我所做的 由于我正在使用自己的代理 因此,网络项目将发布在代理的每个项目发布目录中。 那是目录a。

解决方案: 我所做的就是在所有解决方案建立好整个解决方案之后,将vsts将所有网站都放在发布目录a中。 我编写了powershell脚本来获取项目的每个文件,并将其放在发布的文件夹a中的子目录下。

例如 构建解决方案后,发布文件夹a将如下所示 Website1 ....... xml 网站1..zip 。 。 。 Website2 ........ xml 网站2 ........ zip 。 。

等 构建解决方案后,这些文件将位于文件夹togeter的上方。

为了为每个项目构建工件,我编写了powershell脚本将每个项目文件放在子目录中 例如 一个\网站1 Website1 ....... xml Website1 ....... zip

a \ website2 Website2 ....... xml Website2 ....... zip

等等

之后,为每个目录选择每个发布工件,然后您可以为每个项目拥有工件。 谢谢