阻止MSDeploy(有选择地)删除目标IIS服务器上的文件夹

Mic*_*345 6 msbuild teamcity msdeploy

我有一个IIS Web应用程序,其结构大致类似于:

wwww.mysite.com
  file1.asp
  file2.asp
  \DotNet
    file3.aspx
    file3.aspx
Run Code Online (Sandbox Code Playgroud)

我们正在设置TeamCity来进行自动部署.我有一个MSBuild构建步骤,部署到\ DotNet文件夹(aspx文件),并在一个单独的构建配置中,我有另一个MSBuild构建步骤,部署到根(asp文件).

我想允许MSDeploy删除不必要的文件,例如,如果我从VCS中删除file2.asp,我希望它从目标IIS服务器中删除它.

但是,我不希望它擦除\ DotNet子文件夹.

我可以获得比命令行开关"SkipExtraFilesOnServer"更精细的东西,或者这是一个全有或全无的交易?

Mic*_*345 5

事实证明,我的问题的答案比我预期的要简单得多

通过MSBuild使用MSDeployPublish目标部署到应用程序的根文件夹时,默认情况下,将删除恰好位于目标IIS服务器的文件系统上的额外子文件夹.

为了避免这种情况,我只是将我的DotNet文件夹的内容移动到C:\ InetPub下的一个完全独立的位置,但在IIS Mgr下保留了我原来的虚拟文件夹/应用程序结构.当然!

现在我可以尽可能多地发布到任一位置,并且不会尝试删除另一个位置,因为一个不再是另一个的文件系统子文件夹.

如果有的话 - 这突出了我们早期的文件夹结构是多么原始,以及我没有意识到什么是doofus.