Azure devops CI_VST在单个解决方案中为每个项目发布不同的web工件

Azure devops CI_VST在单个解决方案中为每个项目发布不同的web工件,azure-devops,publish,Azure Devops,Publish,我有一个CI管道(VSTS),在其中我能够构建整个解决方案,在一个工件中包含两个网站项目。我想做的是构建整个解决方案,然后为每个项目创建发布工件。 例如 Project_网站1的一个工件 Project_网站2的一个工件 谢谢我在StackOverflow中尝试了类似的主题,但对我不起作用您可以使用两个发布工件任务,也可以复制文件多个任务,以在VSTS构建中实现任意数量的工件。例如,假设您拥有单个项目的当前构件,包括_PublishedWebsites\MVS5WebApp(XCopy可部署网站

我有一个CI管道(VSTS),在其中我能够构建整个解决方案,在一个工件中包含两个网站项目。我想做的是构建整个解决方案,然后为每个项目创建发布工件。 例如 Project_网站1的一个工件 Project_网站2的一个工件
谢谢我在StackOverflow中尝试了类似的主题,但对我不起作用

您可以使用两个发布工件任务,也可以复制文件多个任务,以在VSTS构建中实现任意数量的工件。例如,假设您拥有单个项目的当前构件,包括_PublishedWebsites\MVS5WebApp(XCopy可部署网站)和_PublishedWebsites\MVS5WebApp_包(web部署包)。 如果要将这两个项目分离为两个项目,可以使用两个发布项目任务,如下所示,每个任务指定要发布的确切路径(此路径不支持通配符,您只需指定需要发布的文件夹)

结果将是两个工件

你可以从这篇文章中得到更多的想法。
还可能有助于您了解更多可能性。

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

例如,第一个VS构建任务和发布构建工件任务用于website1,第二个VS构建任务和发布构建工件任务用于website2。每个任务的详细配置如下所示:

  • VS website1的构建任务(将website1的包存储在
    $(build.artifactstagingdirectory)\web1
    ):

  • 发布网站1的生成工件(将网站1的工件从
    $(Build.artifactstagingdirectory)\web1
    发布到工件
    web1
    ):

  • VS website2的构建(将website2的包存储在
    $(build.artifactstagingdirectory)\web2
    ):

  • 发布网站2的生成构件(将网站2的构件从
    $(Build.artifactstagingdirectory)\web2
    发布到
    web2
    ):

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

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

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

例如 生成解决方案后,发布文件夹a将如下所示 网站1…….xml 网站1……zip . . . Website2…….xml 网站2…….zip . .

等 当解决方案生成时,这些文件将放在上面的文件夹中

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

a\网站2 网站2…….xml 网站2……zip

等等

之后,为每个目录选择每个发布工件,您就可以为每个项目创建工件。
感谢

[错误]发布生成工件失败,出现错误:未找到路径发布:D:\AgentPath\website\aspwebPublish生成工件=>发布路径=>$(build.stagindirectory)\website\aspwebHow它将知道在“$(build.stagindirectory)\website\aspweb”上发布哪个项目Visual Studio Build=>MSBuild参数/p:DeployOnBuild=true/p:WebPublishMethod=Package/p:PackageAsSingleFile=true/p:SkipinValidConfiguration=true/p:PackageLocation=“$(Build.artifactstagingdirectory)\\”您甚至可以在单个生成步骤中执行。两者只要两个网站名称不同,就会放在包位置的不同文件夹中。这应该是一个查看日志并在发布工件任务中使用正确路径来发布的问题。您得到了帮助您解决问题的答案吗?如果是,您可以单击标记答案√ 答案左边的符号。这也将有利于其他遇到类似问题的成员。你能详细说明你的答案吗?