【问题标题】:MSDeploy - sync command to copy files to subfolder of iis appMSDeploy - 同步命令将文件复制到 iis 应用程序的子文件夹
【发布时间】:2014-02-20 10:40:43
【问题描述】:

我想执行构建后步骤,使用 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 应用中。

【问题讨论】:

    标签: iis jenkins msbuild iis-6 msdeploy


    【解决方案1】:

    除了iisApp之外还有providers,也许dirPath是你想要的-dest?:

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

    【讨论】:

    • dirPath 的主要问题是我不想指定绝对路径。相反,我只想将其添加到网站,无论它实际位于何处(抱歉,我应该在我的问题中提到这一点)。有没有办法使用环境变量或类似的东西动态获取 IIS 应用程序的路径?
    • 我没用过,但是“contentPath”会是你要找的吗?恐怕我没有为你做测试的基础设施。
    【解决方案2】:

    上面安德斯的回答提供了正确的信息,但我用来成功执行此操作的完整代码如下:

    "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"
    

    希望这对未来的其他人来说是一个有用的例子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 2023-02-08
      相关资源
      最近更新 更多