首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Web部署(msdeploy)部署在不同的文件夹中?

如何使Web部署(msdeploy)部署在不同的文件夹中?
EN

Stack Overflow用户
提问于 2014-04-28 00:40:59
回答 1查看 2.9K关注 0票数 0

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

  1. 拿一个带有几个文件的文件夹,并将它们打包到一个.zip文件中
  2. 将.zip文件解压缩到不同的文件夹中
  3. 从解压缩文件夹中运行一个.exe (还让.exe知道它在哪里被解压缩)。

我是在一个没有安装IIS的虚拟机上这样做的,否则它会出于某种原因读取IIS配置,即使它不需要对它做任何事情(并且失败是因为它缺乏管理权限)。

我有以下文件:

代码语言:javascript
复制
C:\Temp\TheFolder\readme.txt
C:\Temp\TheFolder\MagicScript\CSTest.exe

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

代码语言:javascript
复制
<sitemanifest>
  <contentPath path="C:\Temp\TheFolder"/>
  <runCommand path="C:\Temp\TheFolder\MagicScript\CSTest.exe"/>
</sitemanifest>

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

代码语言:javascript
复制
msdeploy -verb:sync -source:manifest=manifest.xml -dest:package=ready.zip

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

代码语言:javascript
复制
msdeploy -verb:sync -source:package=ready.zip -dest:auto -replace:match=TheFolder,replace=OtherFolder

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

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

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2014-05-19 09:33:21

"msdeploy -verb:sync“--在源和目标之间执行同步。如果您使用“自动”提供者-它同步源和目的地,所以在您的情况下,在同一台PC是相同的文件夹。“替换”参数仅适用于文件。

您可以尝试以下方法:

代码语言:javascript
复制
msdeploy -verb:sync -source:package=ready.zip -dest:contentPath="C:\Temp\OtherFolder"

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

代码语言:javascript
复制
msdeploy -verb:sync -source:package=ready.zip -dest:-source:manifest=manifestDestination.xml

其中manifestDestination.xml是:

代码语言:javascript
复制
<sitemanifest>
  <contentPath path="C:\Temp\OtherFolder"/>
  <runCommand />
</sitemanifest>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23330841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档