今週は 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>