gpt4 book ai didi

deployment - WebDeploy:合并内容

转载 作者:行者123 更新时间:2023-12-02 03:17:51 25 4
gpt4 key购买 nike

我有 2 个构建(在 TeamCity 中):

使用 WebAPI 为网站生成后端。

我用 WebDeploy 打包该网站:

/p:DeployOnBuild=True/p:PublishProfile="Default"/p:ProfileTransformWebConfigEnabled=False

它为我提供了一个不错的 WebDeploy.zip

现在我有第二个构建,它构建和编译网站前端。

前端和后端由不同的团队开发,因此在不同的时间生成工件。

我希望能够部署合并了前端的后端版本。

现在我有 2 个选择,要么重建后端并依赖于前端(这会创建一个新的不需要的构建),要么重建其他东西(这是我真正想要的)。

我想给定一个 web 部署包,合并前端的文件,将网站部署到 IIS。

现在我可以手动解压缩 webdeploy 包并手动重建它。然而,那里的路径是基于它所在位置的路径(我无法控制它)。

示例:C_C\TeamCity\...blabla...\obj\Release\Package\PackageTmp\Web.config

这使得在不解析位于 WebDeploy 包根目录下的 archive.xml 的情况下很难找出结构。

这是可能的,但理想情况下我想要一个 MSBuild 命令,它允许我将目录的内容“合并”到该网站中。

问题:

  1. 这可以通过 MSDeploy 实现吗?
  2. 如果那不可能,是否可以更改 WebDeploy 包中的目录命名,使其更直接,以便在我想注入(inject)其他文件时使用?

最佳答案

您可以使用 dirPath 将包部署到本地目录提供商,添加您的文件,然后重新打包。首先,您需要创建目标 list ,因为 WebDeploy 使用源 list 创建包。您可以创建包含以下内容的“DestManifest.xml”文件:

<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
<dirPath path="c:\repackagewebdeploy" />
<auto />
<auto />
</sitemanifest>

然后就可以调用MSDeploy进行解包和重新打包了。

msdeploy -verb:sync -source:package=c:\packagePath\package.zip -dest:manifest=[path to destination manifest]
[copy files]
msdeploy -verb:sync -source:dirPath=c:\repackagewebdeploy -dest:package=c:\packagePath\newPackage.zip

这假定您不需要其他 setAcl 提供程序。我们通常不需要这些,所以我忽略它们,但您可以使用 list 将它们添加回最终包,而不是直接使用 dirPath 拉取。

关于deployment - WebDeploy:合并内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com