【发布时间】:2014-05-19 17:33:21
【问题描述】:
我正在尝试制作一个简单的概念验证 Web 部署场景。我的目标是:
- 创建一个包含一些文件的文件夹并将它们打包成一个 .zip 文件
- 将 .zip 文件解压缩到一个不同的文件夹中
- 从解压后的文件夹中运行 .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 文件也不是从未打包的文件夹中运行的。而是将其复制到临时文件夹,然后从那里运行,当前目录设置为我运行部署脚本的位置。
我也尝试使用参数而不是替换,但这仍然没有任何效果。
我做错了什么?
【问题讨论】: