MSDeploy - 同步命令将文件复制到IIS应用程序的子文件夹

4
我希望执行一个后构建步骤,使用MSDeploy将一些文件复制到网站文件夹中。
最终我将在远程位置执行此操作(指定computerNameuserName等开关),但现在我正在本地运行它。
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
   -AllowUntrusted -verb:sync 
   -source:dirPath="D:\files_to_copy" 
   -dest:iisApp="My Website Name"

这样做是有效的,但它会删除网站文件夹全部内容,并用“D:\files_to_copy”的内容替换它们(正如您所期望的那样!)。那么我想知道如何将其简单地复制到站点中的子文件夹中?

我尝试过 -dest:iisApp="My Website Name/my_subfolder",但这只会创建一个名为“my_subfolder”的新IIS应用程序,嵌套在现有的IIS应用程序中。

2个回答

8

除了iisApp,还有提供者,也许dirPath是您所需的-dest提供者:

  • dirPath:dirPath提供者同步目录内容。
  • filePath:filePath提供者同步单个文件。
  • iisApp:iisApp提供者将目录内容同步到文件夹并将该文件夹标记为应用程序。
  • contentPath:contentPath提供者同步网站内容。

dirPath的主要问题是我不想指定绝对路径。相反,我只想将其添加到网站中,而不管它实际位于何处(抱歉,我在问题中应该提到这一点)。是否有任何动态获取IIS应用程序路径的方式,例如使用环境变量或类似的方法? - WheretheresaWill
我没有使用过它,但是"contentPath"可能是你正在寻找的东西吗?恐怕我没有基础设施为你进行测试。 - Anders Lindahl

4

Anders的答案提供了正确的信息,但我成功完成此操作所使用的完整代码如下:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
  -AllowUntrusted -verb:sync 
  -source:contentPath="D:\files_to_copy" 
  -dest:contentPath="My Website Name\my_new_folder"

可以使用以下方法将单个文件(例如robots.txt)添加到站点根目录:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
  -AllowUntrusted -verb:sync 
  -source:contentPath="D:\my_folder\robots.txt" 
  -dest:contentPath="My Website Name\robots.txt"

希望这个例子对未来的其他人有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接