【问题标题】:How to make Web Deploy (msdeploy) deploy in a different folder?如何使 Web Deploy (msdeploy) 部署在不同的文件夹中?
【发布时间】:2014-05-19 17:33:21
【问题描述】:

我正在尝试制作一个简单的概念验证 Web 部署场景。我的目标是:

  1. 创建一个包含一些文件的文件夹并将它们打包成一个 .zip 文件
  2. 将 .zip 文件解压缩到一个不同的文件夹中
  3. 从解压后的文件夹中运行 .exe(同时让 .exe 知道解压的位置)。

我在没有安装 IIS 的虚拟机上执行此操作,否则它出于某种原因想要读取 IIS 配置,即使它不需要对其执行任何操作(并且由于缺少管理权限而失败)。

我有以下文件:

C:\Temp\TheFolder\readme.txt
C:\Temp\TheFolder\MagicScript\CSTest.exe

.zip 包是通过清单创建的:

<sitemanifest>
  <contentPath path="C:\Temp\TheFolder"/>
  <runCommand path="C:\Temp\TheFolder\MagicScript\CSTest.exe"/>
</sitemanifest>

对于打包,我使用以下命令:

msdeploy -verb:sync -source:manifest=manifest.xml -dest:package=ready.zip

对于解包,我使用以下命令:

msdeploy -verb:sync -source:package=ready.zip -dest:auto -replace:match=TheFolder,replace=OtherFolder

但是,MSDeploy 顽固地将所有内容解包在同一个 TheFolder 中。 .exe 文件也不是从未打包的文件夹中运行的。而是将其复制到临时文件夹,然后从那里运行,当前目录设置为我运行部署脚本的位置。

我也尝试使用参数而不是替换,但这仍然没有任何效果。

我做错了什么?

【问题讨论】:

    标签: msdeploy webdeploy


    【解决方案1】:

    “msdeploy -verb:sync” - 在源和目标之间执行同步。如果您使用“自动”提供程序 - 它会将源与目标同步,因此在您的情况下,在同一台 PC 上它是同一个文件夹。 "replace" 参数仅适用于文件。

    您可以尝试以下方法:

    msdeploy -verb:sync -source:package=ready.zip -dest:contentPath="C:\Temp\OtherFolder"
    

    或者,如果它不起作用,请尝试使用目标清单:

    msdeploy -verb:sync -source:package=ready.zip -dest:-source:manifest=manifestDestination.xml
    

    manifestDestination.xml 在哪里:

    <sitemanifest>
      <contentPath path="C:\Temp\OtherFolder"/>
      <runCommand />
    </sitemanifest>
    

    【讨论】:

    • 我认为-dest 参数有错别字。无论如何,我没有想到这一点。不过,这意味着我需要发送两个文件——.ZIP 和目标清单,对吗?另外,需要在目标计算机上修改目标清单...
    • 是的,如果您使用第二种方法,那么您需要两个文件。这取决于您如何交付项目。如果您有多台计算机,每台计算机都需要自己的目录,那么就会出现问题,但是如果每台计算机都有“OtherFolder”,那么在“OtherFolder”而不是“TheFolder”处构建包会更容易。无论如何,对于 Web 部署,我建议使用标准的 WebDeploy 功能。
    • 我的公司正在制作一个产品,它是一个内部网网站(基本上是我们旗舰 ERP 应用程序的 Web 前端)。有很多客户使用它。我想要一个自动安装程序,以便网站可以自动安装和升级,无需人工干预。因此我需要为单个包指定(通过命令行或其他方式)许多参数。
    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多