12

初めてカスタム MSBuild スクリプトを作成し始めたところです。機能を拡張するための標準的なオプションとして、MSBuild Extension PackMSBuild Community Tasksの 2 つがあります。

これらの違いと、どちらか一方、または両方を使用する理由についてのガイダンスを探しています。Bing で Google を検索しましたが、木に木が見えません。任意のガイダンスをいただければ幸いです。

4

3 に答える 3

8

チャイムを鳴らします。たった2セントの価値があります。いくつかのこと-まず第一に、私はそれらを正確に「標準」オプションとは呼びません。MSBuild 4.0より前のバージョンと、インラインタスクおよびプロパティ関数の機能とそれらのタスクの多くはほとんど廃止されています。私は数千行のMSBuildを作成しましたが、これらのライブラリのいずれかからのタスクが必要になったのは2、3回だけです。

それらの良いところは、かなりモジュール化されていることです。必要なアセンブリとターゲットファイルのみを選択して選択し、実装全体に「行き詰まる」ことなくコードベースにチェックインできます。同じビルドで、一方のライブラリからタスクを選択し、もう一方のライブラリからタスクを選択することがあります。私は常に、ライブラリ内のものよりも単純なMSBuild4.0機能を使用することを好みます。ライブラリ内のいくつかのタスクに興味がありましたが、動作がまったく必要なものではなかったので、自分で作成しました(このタスクでは、グループでのzipを制御したかったので、zipタスクが思い浮かびます。ソースフォルダとは相関していませんでした)。単一のカスタムタスクを作成する必要があると、すべて同じアセンブリ内で別のタスクをロールするのが非常に簡単になります。

結局のところ、それは実際にはライブラリに関するものではなく、ライブラリ内の特定のタスクに対する非常に具体的なニーズに関するものであり、必要なものを使用し、ビルドを他のものと絡ませないでください。それ。

于 2011-07-24T22:01:17.730 に答える
1

現在、仕事で MSBuild コミュニティ タスクを使用しています。他の拡張機能との接触はありませんでしたが、このライブラリについてはほとんどわかりません。
長所:

  • インストールが簡単 (MSI インストーラー)
  • 簡単に変更できます。ソースが利用可能であり、BSD ライセンスを取得しているため、自由に変更できます。基本的には、タスクと同じ名前の .cs ファイルに移動して変更し、.sln ファイルを開いてソリューションをビルドするだけです。次に、出力を C:\Program Files\MSBuild\MsbuildTasks\ に貼り付けます。
  • msbuild 以外のコードをあまり書きたくない場合は、一部の拡張機能が非常に役立ちます。zip 圧縮は優れています。ファイルに対する RegEx 操作も便利です。
    • 他には試していませんが、gacutil (グローバルに表示されるように dll をインストールする)、IIS ディレクトリの作成、ファイル属性の変更などの興味深いタスクがいくつか見られました...
    • はい、MSBuild でこのすべてのタスクを実行できますが、多くの "Exec" コマンドを使用するか、プロパティで c# 関数を使用する必要があり、コードを読むのは本当に面倒です。

短所:

  • 有用なドキュメントの欠如 (おそらく私は十分に検索していませんでしたが、私が見つけた唯一の助けは、ソースをダウンロードし、タスクの .cs ファイルを見つけて分析することでした)
    • 私を最も悩ませたのは、プロジェクトの Web サイトにタスクの属性のリストがないことです。フォーラムでググるか、コードにアクセスする必要があります。
  • 私が得た唯一の問題は、RegexReplace がファイルを UTF-8 で保存することです。
    私の同僚は、すべて ANSI でエンコードされた何千もの SQL スクリプトのように書きました。それらの中のものを置き換えてSQLCMDに渡すと、すべてのUTF-8ファイルの最後に1つの記号が追加されたため(ある種のエンコーディング記号)、ファイルを解析できませんでした。RegexReplace.cs に移動し、関数の 1 つでエンコーディング パラメーターを変更してからコンパイルする必要がありました。したがって、基本的にはフォークを作成する必要がありました : )
    (2 分間の作業、1 時間は人々にそのしくみを説明する時間です)
    しかし、MSBuild での UTF-8 ファイルの解析には問題はありませんでした。ファイルを処理するためのツール。

概要:
これは便利なツールで、インストールと使用が簡単で、コードをより明確にし、理解しやすくし、時間を節約するのに役立ちます。最大の問題はドキュメンテーションだと思いますが、Google でタスクとライブラリの名前を書くだけで、フォーラム、ブログ、およびここでコードを見つけることができます。

于 2011-07-27T07:17:04.257 に答える
1

私の 2 セント - 私は、バニラの Windows マシン (TFS と VS.NET がインストールされていない) で実行されるプロジェクトのビルド スクリプトをすばやく作成しなければならない状況にありました。ビルドスクリプトは次のことを行うはずでした-

  1. TFS からソースを取得する
  2. プロジェクトをビルドする
  3. 単体テストの実行
  4. FxCop、StyleCop、CodeMetrics を実行する
  5. コード ドキュメントの作成
  6. 最後に、電子メールの結果

上記のツールを実行し、電子メールを送信する簡単な方法が必要だったので、MSBuild 4.0 の先を見なければなりませんでした。MSBuild Community Tasks と MSBuild Extension pack の両方を見ました。拡張パックは洗練された健全なパッケージであると読んだことがありますが、それでも試してみましたが、コミュニティパックを使用することになりました. . Extensions Pack は、私の意見では、操作方法を理解する時間がある場合にのみオプションです。

于 2013-10-09T17:21:31.147 に答える