8

TeamCityを使用して、msbuildとWebDeployを介してMVCアプリケーションのコレクションをビルドおよびデプロイしています。

ソリューションのビルド/デプロイの前のステップで、app_offline.htmをデプロイディレクトリにコピーして、SQLの更新やビルドを含むその他のWeb/ソリューション管理ステップを実行できるようにします。

WebDeployの設定の1つは、プロジェクトに含まれていないファイル、またはサイトの実行に必要のないファイルを削除することです。これにより、app_offline.htmファイルが毎回削除されます。これは一種の望ましい結果であると理解していますが、展開時にこのファイルが展開ディレクトリから削除されないようにする方法はありますか?

ExcludeFromPackageFilesオプションを使用してItemGroupを追加しようとしましたが、結果がありません。

4

2 に答える 2

0

この別の質問「公開中のカスタムapp_offline.htmファイル」は、説明する最終結果の1つの可能な方法を提案します。

私は自分のものを使います

app_offline.htm_

公開されるソリューション内のファイル。次に、デプロイメントスクリプトの名前を変更して(末尾の_を削除して)アクティブにします。

次に、dbスクリプトを実行し、ファイルの名前を変更してサイトを元に戻します。

于 2011-02-25T05:28:19.743 に答える
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>
于 2011-06-22T20:23:08.893 に答える