[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]
「[[マイクロソフト系技術情報 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化も容易、多くの要件にはこちらで対応可能です。
-devenv は[[Visual Studio]]のEXE

-参考情報
--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
-*.bat化も容易、多くの要件にはこちらで対応可能。

**ビルド・イベント [#z0e3574c]
***ビルド・イベント [#z0e3574c]
-「ビルド前のイベント」
-「ビルド後のイベント」

がある。

例えば、プロジェクト(プロジェクト・ファイル(*.csproj *.vbproj))に、~
[ビルド後のイベント]を仕掛けて、プロジェクトのバイナリ出力を配置できます。
[ビルド後のイベント]を仕掛けて、プロジェクトのバイナリ出力を配置できる。

*MSBuild/NAnt [#f5f2dc01]
***参考 [#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]

***[[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は最終的には(ビルド・プロセスだけでなく)~
--[[NAnt>#n1771802]]は最終的には(ビルド・プロセスだけでなく)~
アジャイル開発のプラクティス(=実践項目)の1つである~
「[[継続的インテグレーション>CI]]」を実現することを目的としている。

>そのためNAntの方が、例えばテスト・ツール「NUnit」の呼び出しが標準機能だけで~
可能なことなど、あらかじめ用意されているタスクがMSBuildよりも豊富である。
>そのため[[NAnt>#n1771802]]の方が、例えばテスト・ツール「[[NAnt>#n1771802]]」の呼び出しが標準機能だけで~
可能なことなど、あらかじめ用意されているタスクが[[MSBuild>#u295c468]]よりも豊富である。

**MSBuild [#u295c468]
-.NETビルド・エンジン「MSBuild」使いこなし術 - @IT~
http://www.atmarkit.co.jp/fdotnet/special/msbuild01/msbuild01_01.html
**その他 [#u490762e]

***コマンドライン [#rba1c1aa]
MSBuildをコマンドラインで呼び出してビルドできます。
 MSBuild /build release solution.sln 
***NuGet [#b6fac5f7]
-.NET 向けのパッケージ管理システムで、~
ビルド時に、package.configを見てパッケージを復元する。
 ..\nuget.exe restore "Frameworks\Infrastructure\AllComponent.sln"

-devenvと同様に、MSBuildの*.bat化も容易で、多くの要件にはこちらで対応可能です。
-PackageReferenceに切り替え後のビルドでは、NuGetリストアを~
nuget.exe ではなく、MSBuild /t:Restore で行うように変更されている。
 MSBuild.exe /p:Configuration=Debug -v:d /t:Restore XXXXX.sln

-MSBuild コマンド ライン リファレンス~
http://msdn.microsoft.com/ja-jp/library/ms164311.aspx
***[[dotnetコマンド]] [#z5a4c658]
[[.NET Core]]では[[dotnetコマンド]]を使用する。

***MSbuildタスク [#k1b035dc]
-MSBuild タスク~
https://msdn.microsoft.com/ja-jp/library/ms171466.aspx
-MSBuild タスク リファレンス~
https://msdn.microsoft.com/ja-jp/library/7z253716.aspx
*トラブルシュート [#c065624b]
しかし、色々と問題が起きます。

**NAnt [#n1771802]
**[[MSBuild>MSBuild#qf9870d5]] [#m8fec715]

NAntを活用して開発時の作業を自動化する(1-4):CodeZine~
http://codezine.jp/article/detail/354
**[[NuGet>NuGet#g0904008]] [#l2737d53]

>ビルドツールとは、アプリケーションの構築に必要なソースコードの~
コンパイルを容易にしたり、定型作業を自動化したりできるツールです。
**[[dotnetコマンド>dotnetコマンド#yda45833]] [#s4259c51]

>NAntの最大の魅力は呼び出せる機能の多さにあります。~
この機能のことをNAntでは「タスク」と呼んでいます。
*参考 [#tb43989a]
Open棟梁はdevenvやMSBuildを使用した~
ビルド バッチ(*.bat)を提供して、~
ビルドタスクの自動化を行っている。

*ビルドスクリプトの例 [#c7f5e41d]
Open棟梁はdevenvやMSBuildを使用したビルド バッチ(*.bat)を提供して、ビルドタスクの自動化を行っている。
https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/programs/CS

https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/programs/C%23
----
Tags: [[:テスト]], [[:デバッグ]], [[:デプロイ]], [[:CI]], [[:.NET開発]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS