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