我正在使用TeamCity通过msbuild和WebDeploy构建和部署MVC应用程序集合。
在我的解决方案构建/部署之前的步骤中,我将app_offline.htm复制到deploy目录,以便我可以执行SQL更新和其他Web /解决方案管理步骤,包括构建。
WebDeploy中的一个设置是删除未包含在项目中或不需要运行站点的文件。这会每次删除我的app_offline.htm文件。虽然我理解这是一种理想的结果,但有没有办法在部署时排除此文件从部署目录中删除?
我尝试使用ExcludeFromPackageFiles选项添加一个ItemGroup,但没有结果。
答案 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>