- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>ビルド]]
* 目次 [#p15252ae]
#contents
*概要 [#g3929e10]
ビルドスクリプトでビルド自動化をすると、かなり生産性向上に寄与する。
*ツール [#mf579100]
下記ツールを使用してビルドを行うことが出来る。~
昨今、[[MSBuild>#u295c468]]が一般的になっている。
-昨今、[[MSBuild>#u295c468]]が一般的になっている。
-[[.NET Core]]では[[dotnetコマンド>#z5a4c658]]を使用する。
**[[Visual Studio]] [#a19e049f]
***コマンドライン [#rba1c1aa]
[[Visual Studio]]をコマンドラインで呼び出してビルドできます。
[[Visual Studio]]をコマンドラインで呼び出してビルドできる。
devenv /build release solution.sln
-devenv は[[Visual Studio]]のEXE
-*.bat化も容易、多くの要件にはこちらで対応可能です。
-*.bat化も容易、多くの要件にはこちらで対応可能。
-参考情報
--VS .NET と VSS を使用したチーム開発 - 第 5 章 ビルド プロセス~
http://msdn.microsoft.com/ja-jp/library/ms998223.aspx
--Visual Studioのソリューションをコマンドラインでビルドする方法 ラシカル開発記~
http://www.lasical.com/2011/03/11/1211/
--Devenv コマンド ライン スイッチ~
http://msdn.microsoft.com/ja-jp/library/xee0c8y7.aspx
***ビルド・イベント [#z0e3574c]
-「ビルド前のイベント」
-「ビルド後のイベント」
がある。
例えば、プロジェクト(プロジェクト・ファイル(*.csproj *.vbproj))に、~
[ビルド後のイベント]を仕掛けて、プロジェクトのバイナリ出力を配置できます。
[ビルド後のイベント]を仕掛けて、プロジェクトのバイナリ出力を配置できる。
***参考 [#v8366d1d]
-VS .NET と VSS を使用したチーム開発 - 第 5 章 ビルド プロセス~
http://msdn.microsoft.com/ja-jp/library/ms998223.aspx
-Visual Studioのソリューションをコマンドラインでビルドする方法 ラシカル開発記~
http://www.lasical.com/2011/03/11/1211/
-Devenv コマンド ライン スイッチ~
http://msdn.microsoft.com/ja-jp/library/xee0c8y7.aspx
**[[MSBuild>#u295c468]]/[[NAnt>#n1771802]] [#f5f2dc01]
-ミッション:ビルドを自動化セヨ! - @IT~
http://www.atmarkit.co.jp/fdotnet/nagile/nagile04/nagile04_01.html
***[[MSBuild]] [#u295c468]
マイクロソフトのビルド環境であり、通常Visual Studioと一緒に使われている。
-.NETビルド・エンジン「MSBuild」使いこなし術 - @IT~
http://www.atmarkit.co.jp/fdotnet/special/msbuild01/msbuild01_01.html
--[[MSBuild>#u295c468]]がビルド・プロセスの統一と自動化を目標としているのに対し、
--[[NAnt>#n1771802]]は最終的には(ビルド・プロセスだけでなく)~
アジャイル開発のプラクティス(=実践項目)の1つである~
「[[継続的インテグレーション>CI]]」を実現することを目的としている。
>そのため[[NAnt>#n1771802]]の方が、例えばテスト・ツール「[[NAnt>#n1771802]]」の呼び出しが標準機能だけで~
可能なことなど、あらかじめ用意されているタスクが[[MSBuild>#u295c468]]よりも豊富である。
***[[MSBuild]] [#u295c468]
-nmakeツールの(機能的な意味での).NET版
-Visual StudioプロジェクトをIDE無しでビルドできる。
***NAnt [#n1771802]
2012年あたりで開発が停止している模様。
-NAntを活用して開発時の作業を自動化する(1-4):CodeZine~
http://codezine.jp/article/detail/354
--ビルドツールとは、アプリケーションの構築に必要なソースコードの~
コンパイルを容易にしたり、定型作業を自動化したりできるツールです。
--NAntの最大の魅力は呼び出せる機能の多さにあります。~
この機能のことをNAntでは「タスク」と呼んでいます。
**NuGet [#b6fac5f7]
.NET 向けのパッケージ管理システムで、~
***参考 [#de2b43e1]
-ミッション:ビルドを自動化セヨ! - @IT~
http://www.atmarkit.co.jp/fdotnet/nagile/nagile04/nagile04_01.html
-.NETビルド・エンジン「MSBuild」使いこなし術 - @IT~
http://www.atmarkit.co.jp/fdotnet/special/msbuild01/msbuild01_01.html
--[[MSBuild>#u295c468]]がビルド・プロセスの統一と自動化を目標としているのに対し、
--[[NAnt>#n1771802]]は最終的には(ビルド・プロセスだけでなく)~
アジャイル開発のプラクティス(=実践項目)の1つである~
「[[継続的インテグレーション>CI]]」を実現することを目的としている。
>そのため[[NAnt>#n1771802]]の方が、例えばテスト・ツール「[[NAnt>#n1771802]]」の呼び出しが標準機能だけで~
可能なことなど、あらかじめ用意されているタスクが[[MSBuild>#u295c468]]よりも豊富である。
**その他 [#u490762e]
***NuGet [#b6fac5f7]
-.NET 向けのパッケージ管理システムで、~
ビルド時に、package.configを見てパッケージを復元する。
以下、復元スクリプトの例
..\nuget.exe restore "Frameworks\Infrastructure\AllComponent.sln"
-PackageReferenceに切り替え後のビルドでは、NuGetリストアを~
nuget.exe ではなく、MSBuild /t:Restore で行うように変更されている。
MSBuild.exe /p:Configuration=Debug -v:d /t:Restore XXXXX.sln
***[[dotnetコマンド]] [#z5a4c658]
[[.NET Core]]では[[dotnetコマンド]]を使用する。
*トラブルシュート [#c065624b]
しかし、色々と問題が起きます。
**[[MSBuild>MSBuild#qf9870d5]] [#m8fec715]
**[[NuGet>NuGet#g0904008]] [#l2737d53]
**[[dotnetコマンド>dotnetコマンド#yda45833]] [#s4259c51]
*参考 [#tb43989a]
Open棟梁はdevenvやMSBuildを使用した~
ビルド バッチ(*.bat)を提供して、~
ビルドタスクの自動化を行っている。
https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/programs/CS
----
Tags: [[:テスト]], [[:デバッグ]], [[:デプロイ]], [[:CI]], [[:.NET開発]]