8

今週は msbuild に興味があります。非常に複雑なビルド スクリプトを多数整理しています。msbuild は、.NET プログラミング自体の隠れた機能のようなものです。

質問には答えが必要であるという SO の慣習では、数日または 1 週間以内に、最も有用または最もクールな隠れた機能を承認済みとしてマークします。

   let bestAnswer suprise slick useful = (surprise + slick + 2*useful)

有用性の定義: Web サイトとユーティリティのパッケージ化 (zip ファイル)、CC.NET 統合、テストの起動 (UT + selenium)、データベースの構築を行う既存の msbuild スクリプトを更新しています。私は追加しています (新しいターゲット、さらに便利です): VMWare 仮想サーバーへのデプロイ、チェーン ビルド (すぐに高速ビルド、低速テストをキューに入れる)。外部ライブラリ ( MSBuild コミュニティ タスクなど) を参照する場合は、その入手方法を知っておくとよいでしょう。

私がすでに見つけたいくつかのmsbuildの驚き。

  • メッセージタスクとプロパティを使用した Hello world 。
  • 非常に複雑なサーバー製品のインストーラーとして msbuild を使用する。MSB コミュニティ タスクは、IIS サーバーのセットアップを管理しました。WriteLinesToFileおよびXmlUpdateタスクは、サーバー固有の構成ファイルを書き込みました。MSI を使用したことがあれば、インストールには MSI よりも優れていることがわかるでしょう。
  • 初心者向け: CSProj および Vbproj ファイルは、msbuild の "proj" ファイルと同じです。直接編集するには: csproj または vbproj をアンロードし、プロジェクトを右クリックして [編集] を選択します。これは、不格好なビルド前/ビルド後のイベントを操作するよりも優れて強力です。
  • MSBuild には、一般的な .NET インストールが付属しています。他の派手なツールとは異なり、完全にクリーンなサーバー/デスクトップで使用できます。

ここに msbuild Hello World があります 書いた後、MSDN の hello worldを見つけました。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build;Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
       <Who>World</Who>
  </PropertyGroup>
  <Target Name="Hello">
    <Message Text="Hello, $(Who)" Importance="high" ></Message>
  </Target>
  <Target Name="Build" DependsOnTargets="Hello"/>
  <Target Name="Test"/>
</Project>
4

5 に答える 5

2
  • MSBuild 拡張機能パックが非常に便利であることがわかりました。ドキュメントは非常によく整理されており、必要な情報を簡単に見つけることができます。

  • ビルド ファイル用の Intellisense の構成に関するセクションがあり、ここで見つけることができます。

  • Attrice には、ビルド スクリプトで作業する必要がある場合によく使用する素晴らしいツールがあります。試してみる価値があるのは、ビルド スクリプトの実行中に auto 変数と watch 変数を使用して、ビルド スクリプトを実行するときに依存タスクを表示するデバッガーがあることです。マイクロソフト ビルド サイドキック v2.3

  • SVN を quiet に設定すると、ビルド プロセスの速度が大幅に向上したように感じます。MSBuild.Community.Tasks.Subversion.SvnExport に以下を追加すると、SVN から取得したすべてのファイルをログに記録せずにビルドが実行されます。

    Arguments="--force -q"

于 2009-05-18T11:52:23.723 に答える