2

ヒント/秘訣:VS2005を使用したASP.NET2.0 Webプロジェクトのビルドパフォーマンスの最適化で概説されているように、VisualStudioWebサイトプロジェクト内で使用できる[ビルドページ]コマンドは次のことを行います。

このソリューションは、以前と同様にすべてのクラスライブラリプロジェクトをコンパイルし、次に/ app_codeディレクトリとGlobal.asaxファイルをコンパイルします。次に、Webサイト内のすべてのページを再検証する代わりに、作業中の現在のページのみを検証します。 、およびページが参照するすべてのユーザーコントロール

msbuildやコマンドラインからこの機能にアクセスする方法はありますか?

大規模なVisualStudioWebサイトプロジェクト(Kentico CMSに基づく)の自動ビルドをセットアップしています。これは次のもので構成されています。

  • 変更しない多数のCMS関連のページとユーザーコントロール
  • 私たちが積極的に開発している少数のカスタム「Webパーツ」ユーザーコントロールは、すべてWebサイト内のCMSWebParts/Customディレクトリ内にあります。

aspnet_compilerを使用してサイト全体をプリコンパイルするには最大10分かかりますが、これはコミットビルドには遅すぎます。理想的には、カスタムコードだけをプリコンパイルするステップを紹介したいと思います。コンパイル済みの出力(Kenticoサイトには推奨されません)を実際にデプロイしないことに注意してください。この手順は、.ascxファイルのコードを検証することのみを目的としています。

4

2 に答える 2

3

大規模なWebサイトへの小さな変更のプリコンパイル時間を短縮するために私が見つけた最善の方法は、インプレースコンパイルでASP.Netコンパイルツール(aspnet_compiler.exe)を使用することです。

ビルドスクリプトは、次のコマンドを使用してツールを実行します。

aspnet_compiler.exe -v / -p C:\ path \ to \ MyWebSite

このコマンドは、Webサイトへの物理パスを指定しますが、targetDirオプションを設定しないため、アプリケーションがインプレースでコンパイルされます。

インプレースコンパイルの利点は、aspnet_compilerがデフォルトで、Webサイトが最後にコンパイルされてから変更されたファイルのみをコンパイルすることです(-cオプションを使用してすべてを強制的に再コンパイルできます)。たとえば、上記のコマンドをWebサイトに対して初めて実行すると、実行に約10分かかります。その後、1つのファイルを変更して再度実行すると、30秒ほどしかかかりません。

コンパイルツールがどのファイルが変更されたかをどのように「認識する」かについて興味があるかもしれません。インプレースでコンパイルしても、コンパイルされるアプリケーションは変更されません。つまり、WebアプリケーションのbinフォルダーにApp_Web_xdqqvn5q.dllやdefault.aspx.cdcab7d2.compiledなどのファイルが作成されることはありません。出力は、実際には「TemporaryASP.NETFiles」フォルダー内に生成されます。(IISメタベースではなく)物理パスを指定すると、プロファイル内のフォルダーが使用されます(例:C:\ Users \ your.name \ AppData \ Local \ Temp \ Temporary ASP.NET Files)。Webアプリケーションのソースコードは、一時ASP.NETファイルに格納されているデータと相互参照され、何が変更されたかを調べます。

于 2011-08-25T12:13:03.610 に答える
0

これはあなたが達成する必要があることの助けになるかもしれないと思います:

http://msdn.microsoft.com/en-us/library/dd293881.aspx

私が読んだものから、VisualStudioコマンドプロンプトまたはWindowsコマンドプロンプトからビルドを実行できます。

アップデート:

インターネット上で1ページのみのビルドに関連するものは見つかりませんでしたが、 -cパラメーターなしでaspnet_compilerを使用すると、変更されたものだけが再コンパイルされるため、コンパイルプロセスが高速化されます。前回のビルド以降に変更されたのが1つの.aspxページのコンテンツのみである場合、コンパイラの実行はビルドページと同様に動作する必要があります。

-c

コンパイルするアプリケーションを完全に再構築する必要があることを指定します。すでにコンパイルされているコンポーネントは、再度コンパイルされます。このオプションを省略すると、ツールは、コンパイルが最後に実行されてから変更されたアプリケーションの部分のみをビルドします。

aspnet_compilerの使用法は、このページで説明されています。

http://msdn.microsoft.com/en-us/library/ms229863.aspx

于 2011-08-24T10:52:42.260 に答える