21

.net プロジェクトのビルド プロセスをカスタマイズするために MSBuild 構文を使用することを学ぶ価値があると人々が考えているのか、それとも、Visual Studio を使用してプロジェクトを簡単にビルドできることを考えると、それは本当に価値がないのか、単純に疑問に思いました。

ナイトリー ビルドなどで考えているのですが、VS に組み込まれているコマンドライン ビルド オプションを使用するスケジュールされたイベントを使用できないでしょうか。そこに優れたツールはありますか?

4

10 に答える 10

15

@kronoz
I would say YES.
The neat thing about MSBuild is that if you modify your csproj files to include custom build steps then those steps will happen from within VS or from MSBuild. Also if you ever have a build server you will not need to install full VS, only the SDK to build your projects.

于 2008-09-06T22:29:13.357 に答える
13

MSBuild は、時間をかけて学ぶ価値があります。最初の学習曲線 (実際には非常に急勾配である可能性があります) を過ぎると、最も一般的なビルドの自動化手順をかなり簡単に実行できるようになります。

  • RELEASE モードでのアセンブリの構築
  • 厳密な名前でアセンブリに署名する
  • 単体テストの実行
  • その場でxmlファイル/Web.config-sを変更する
  • アセンブリのバージョン番号を変更する
  • FxCop / StyleCop などを検証しています...
  • 自動展開 - SQL データベース、IIS Web サイト、Windows サービスなどを作成します...
于 2008-09-22T21:50:11.480 に答える
8

MSBuild は、.NET ソフトウェアを作成するすべての人にとって、学ぶ価値があることは間違いありません。.NET アプリのビルド サーバーに Visual Studio をインストールする必要がなくなった理由 (Andrew Burns が述べたように) は、MSBuild が .NET Framework の一部になったためです。

MSBuild を理​​解すると、継続的インテグレーションの実装に使用するテクノロジを柔軟に選択できるようになります。時間をかけて MSBuild を学んだおかげで、あるチームが使用していた CI システムを CruiseControl.NET から TeamCity に難なく変更することができました。これらの CI サーバー、または FinalBuilder (私はよく知りません) のようなものは、スケジュールされたタスクよりも夜間のビルドを実行するためのより良いオプションです。カスタム MSBuild タスクを実装する方法を学習すると、カスタム ビルドをより柔軟に実装できるようになります。Jivko Petiov は、MSBuild によって簡単になるタスクをいくつか挙げています。データベースの展開と構成の場合、MSBuild でこれを行うスクリプトを作成しました。これにより、開発とテストのプロセスがはるかに簡単になります。

将来的に Visual Studio Team System を使用する場合、MSBuild を使用して構築されたアプリケーションは、別の手段で構築されたアプリケーションよりもはるかに簡単にその環境に移行できます。

MSBuild の使用を開始するのに役立つリソースが多数あります。Inside the Microsoft Build Engineから始めます。共著者の 1 人は、このサイトCodePlex のプロジェクトなど、Web 上に大量の情報を持っています。

于 2010-02-01T18:58:02.517 に答える
7

あなたは自分のサイトで作業している単一の開発者のようです。その場合は、まったく必要ありませんが、専門的な経験の一部として学習することをお勧めします。

プロジェクトに取り組む開発者の数が増えるにつれて、プロジェクトの自動ビルドがより必要になります。2 人の開発者が、組み合わせると壊れる互換性のないコードを書くのは非常に簡単です (たとえば、関数 foo(int x) を呼び出していて、署名を foo(int x, int y) に変更するとします。コードベースを組み合わせると、コードが壊れます。

これらのタイプのエラーは、統合ビルド間の時間が長くなるにつれて、複雑さと煩わしさが増します。毎晩のビルド、またはチェックインごとに発生するビルドを設定することで、これらの問題が大幅に軽減されます。このプラクティスは、複数の開発者がいるプロジェクト全体でほぼ業界標準です。

では、あなたの質問にお答えしましょう。これは、プロジェクトや企業にまたがるスキルです。開発者としての知識とスキルを広げ、履歴書に重要な行を追加するためにそれを学ぶ必要があります。

于 2008-09-06T23:36:36.487 に答える
5

まあ、MSBuild が組み込まれているので、簡単なことをしているのであれば、はい、お勧めです。

しかし、ナイトリー ビルドのようなものについては、FinalBuilderをお勧めします。

ビルド/構成管理ツールに関するこの質問を参照してください。

于 2008-09-06T22:53:27.153 に答える
2

ビルドシステムをまだ持っていないあなたのようなシナリオでは、そうです、MSBuildは絶対に価値があります。ビルド前およびビルド後のさまざまなタスクに使用できるだけでなく(Jicko Petiovの回答を参照)、継続的インテグレーション環境(CruiseControlなど)にうまく統合することもできます。

価値がない可能性があるシナリオの1つは、自動化/スクリプト化されたビルドシステムがすでに導入されている場合です。たとえば、MSBuildが存在する前から、このタスクにNAntを使用していたため、私自身はMSBuildに時間をかけていません...

于 2008-09-22T21:56:05.307 に答える
2

MSBuild の使い方は非常に簡単です。VS を使用してプロジェクトとソリューション ファイルを管理し、SLN を MSBuild に渡すだけです。

于 2008-09-06T23:34:39.673 に答える
1

MSBuild を使用したコマンド ラインからのビルドは、比較的簡単に習得できます。まず、Visual Studio コマンド プロンプトを開き、msbuild /?. ヘルプを一度読んでから、詳細を知りたいかどうかを後で決めてください。

プロジェクト ファイルの作成は、もう少し複雑です。Visual Studio でほとんどのことができるので、ほとんどの人はそれを学ぶ必要はありません。ただし、特定の問題に対しては非常に強力です。

私は過去に、多くのカスタム タスクと組み合わせてスクリプト言語として MSBuild を使用しました。MSBuild には、優れたログ サポートと組み込みの依存関係管理があります。とはいえ、簡単に習得できる言語ではありません。PowerShell は、はるかに優れた選択肢です。

于 2008-09-20T16:42:01.537 に答える
1

.net ワークショップで開発する場合は、学ぶ価値があります。
ビルド プロセスを Jenkins (元は Hudson) に統合しました。上で述べたように、MSbuild は学習曲線が急です。しかし、基本を理解したら、ビルドのカスタマイズを開始できます。これまでの私の印象 - 素朴かもしれませんが、スクリプトの大部分は以下で構成されています

<PropertyGroup>
   <PropertyKey>value</PropertyKey>
</PropertyGroup>
<ItemGroup>
   <ItemListKey>List values<ItemListKey>
</ItemGroup>
<Task Source="" Target="" />
    ビルドに使用する以外に、MSBuild を使用して管理するモジュールを作成することに成功しました。
    web.config や foo.exe.config ファイルなどの構成ファイル。
    これは、.net コンソール アプリ、MSBuild スクリプト、およびバッチ ファイルで構成されるハイブリッド モジュールです。
    このモジュールが行うことは、プロジェクトのアップグレード中に XML 変換を作成することです。       
    古い構成の接続文字列、エンドポイント、および appSettings を含むテンプレート
    ファイル。
    プロジェクトがアップグレードされた後、モジュールは新しく展開されたものに変換されます  
    構成
    新しいエントリに影響を与えずにファイル。数十の構成ファイルがある場合、これ  
    非常に効果的です。
于 2013-01-29T17:57:34.880 に答える
0

@kronozはいと言います。MSBuild の優れた点は、csproj ファイルを変更してカスタム ビルド ステップを含めると、それらのステップが VS または MSBuild から実行されることです。また、ビルド サーバーがある場合は、完全な VS をインストールする必要はなく、プロジェクトをビルドするための SDK のみをインストールする必要があります。

==>これは完全に真実ではありません。たとえば、ビルド サーバーでセットアップ プロジェクトをビルドするには、Visual Studio をインストールする必要があります。

于 2010-03-02T12:12:47.973 に答える