在WebDeploy期间忽略删除文件

时间:2011-02-18 03:16:12

标签: visual-studio-2010 teamcity webdeploy app-offline.htm

我正在使用TeamCity通过msbuild和WebDeploy构建和部署MVC应用程序集合。

在我的解决方案构建/部署之前的步骤中,我将app_offline.htm复制到deploy目录,以便我可以执行SQL更新和其他Web /解决方案管理步骤,包括构建。

WebDeploy中的一个设置是删除未包含在项目中或不需要运行站点的文件。这会每次删除我的app_offline.htm文件。虽然我理解这是一种理想的结果,但有没有办法在部署时排除此文件从部署目录中删除?

我尝试使用ExcludeFromPackageFiles选项添加一个ItemGroup,但没有结果。

2 个答案:

答案 0 :(得分:0)

另一个问题“Custom app_offline.htm file during publish”为您描述的最终结果提供了一种可能的方法:

  

我使用自己的

app_offline.htm_
     获取解决方案中的

文件   出版。然后是我的部署脚本   重命名它(删除尾随_)   使其活跃。

     

然后我可以运行我的db脚本/ do   无论如何重命名文件带来   该网站回来了。

答案 1 :(得分:0)

我遇到了类似的问题,想要在部署包中保留缩小的javascript文件,即使它们不属于项目的一部分。

我为此添加了一个自定义MSBuild目标,对我有用:

<!-- ====== Package the minify files ===== -->

 <PropertyGroup>
  <CopyAllFilesToSingleFolderForPackageDependsOn>
    CustomCollectFiles1;    
    $(CopyAllFilesToSingleFolderForPackageDependsOn);
  </CopyAllFilesToSingleFolderForPackageDependsOn>
 </PropertyGroup>

 <PropertyGroup>
   <AfterAddIisSettingAndFileContentsToSourceManifest>
    MakeEmptyFolders
   </AfterAddIisSettingAndFileContentsToSourceManifest>
 </PropertyGroup>

<Target Name="CustomCollectFiles1">
  <ItemGroup>
   <!-- =====Controls\Javascript folder ==== -->
    <_CustomFilesForRootFolder Include=".\Controls\Javascript\*.min.js">
    <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)    </DestinationRelativePath>
   </_CustomFilesForRootFolder>
  <FilesForPackagingFromProject Include="%(_CustomFilesForRootFolder.Identity)">
    <DestinationRelativePath>.\Controls\Javascript\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
  </FilesForPackagingFromProject>
 </ItemGroup> 
</Target>