Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Windowsでの自動化の手段
1
いつもの作業を効率化する自動化
2
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
3
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
4
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
• 長い手順書にはうんざりだ
5
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
• 長い手順書にはうんざりだ
• 自動化そのものが好きだな
6
いつもの作業を効率化する自動化
• 退屈な繰り返し作業はしたくない
• 複雑な作業のミスを減らしたい
• 長い手順書にはうんざりだ
• 自動化そのものが好きだな?
7
お品書き
• 今日話すこと
• 自動化の手段をざっくり紹介
お品書き
• 今日話すこと
• 自動化の手段をざっくり紹介
• 今日はなさないこと
• 個々の手段の導入方法
お品書き
お前誰だよ?
11
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
12
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
• 大阪市内でエンジニアしてます
13
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
• 大阪市内でエンジニアしてます
• 普段はC++とか.NET言語(主にC#)とか
14
お前誰だよ?
• Hidari(ひだり)
• Twitter @HIDARI0415
• 大阪市内でエンジニアしてます
• 普段はC++とか.NET言語(主にC#)とか
• 秘伝のソースのメンテナンスが仕事
15
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyorタスクスケジューラ
16
自動化のための手段
3つのレイヤーで紹介
Scripts
NugetMSBuild psake
Jenkins AppVeyor
17
自動化のための手段
タスクスケジューラ
3つのレイヤーで紹介
Batch File WSH/VBScript PowerShell
Build Tools
Jenkins AppVeyor
18
自動化のための手段
タスクスケジューラ
3つのレイヤーで紹介
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Executers
19
自動化のための手段
3つのレイヤーで紹介
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
20
自動化のための手段
タスクスケジューラ
3つのレイヤーで紹介
「そういう考え方もあるのか」くらい...
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
21
自動化のための手段
タスクスケジューラ
Scripts
NugetMSBuild psake
Jenkins AppVeyor
22
自動化のための手段
タスクスケジューラ
Batch File
23
Batch File
• コマンドプロンプト/バッチファイル
• シェルスクリプト(*.sh)に相当
24
Batch File
• コマンドプロンプト/バッチファイル
• シェルスクリプト(*.sh)に相当
• バッチファイルの拡張子は*.bat、*.cmd
25
Batch File
• コマンドプロンプト/バッチファイル
• シェルスクリプト(*.sh)に相当
• バッチファイルの拡張子は*.bat、*.cmd
• 実行するインタプリタ
• COMMAND.COM(Windows Meまで)
• cm...
27
@echo off
!
rem 変数に値を設定します
set HOGE="変数の値"
!
rem このバッチが存在するフォルダに移動します
pushd %0..
!
echo MyAwesomeProgram.exeを実行します。
MyA...
• 可読性が低い
• 構造化しづらい
• 再利用性が悪い
28
Batch File
VBScript/WSH
29
VBScript/WSH
• Windows Script Host + VBScript
30
VBScript/WSH
• Windows Script Host + VBScript
• バッチファイルを置き換える
• Windows 95から標準搭載
31
VBScript/WSH
• Windows Script Host + VBScript
• バッチファイルを置き換える
• Windows 95から標準搭載
• レジストリやWMIへのアクセスが容易
32
VBScript/WSH
• VBScript
33
VBScript/WSH
• VBScript
• Microsoft Visual Basic Scripting Edition
• WSH、ASP上で利用可能
• 組み込みGUI関数 MsgBox、InputBox
34
VBScript/WSH
• VBScript
• Microsoft Visual Basic Scripting Edition
• WSH、ASP上で利用可能
• 組み込みGUI関数 MsgBox、InputBox
• WSH+JScri...
36
Option Explicit
!
WScript.Echo "Hello World"
!
' 変数に値を設定します。
Dim x, y
!
x = 100
y = 200
!
If x > y Then
MsgBox x & "のほう...
VBScript/WSH
• 簡単な処理も複雑になりがち
37
VBScript/WSH
• 簡単な処理も複雑になりがち
• VBScript製ウィルス等の影響もあり敬遠される
• デフォルトでWSHが有効で*.vbsファイルが実行
可能
• ex. LoveLetter
38
PowerShell
39
PowerShell
• .NET Frameworkを利用したスクリプト言語
• システム管理、自動化
40
PowerShell
• .NET Frameworkを利用したスクリプト言語
• システム管理、自動化
• セキュリティ面に配慮
• 実行ポリシーやスクリプトへのデジタル署名
41
PowerShell
• 利用可能
• Windows XP
• Windows 2003
42
PowerShell
• 利用可能
• Windows XP
• Windows 2003
• 標準搭載
• Windows Server 2008 R2
• Windows 7
43
PowerShell
44
!
$dirPath = “.Fuga”
!
if ( -not (Test-Path $dirPath) )
{
mkdir $dirPath
Write-Host “$dirPath を作成しました"
}
els...
PowerShell
• Powershell 5.0 Previewが利用可能
45
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
46
自動化のための手段
タスクスケジューラ
Batch File WSH/VBScript PowerShell
Build Tools
Jenkins AppVeyor
47
自動化のための手段
タスクスケジューラ
MSBuild
48
MSBuild
• Microsoftが提供するビルドエンジン
49
MSBuild
• Microsoftが提供するビルドエンジン
• ビルド > テスト の様な繰り返し作業を簡単に実行
50
MSBuild
• Microsoftが提供するビルドエンジン
• ビルド > テスト の様な繰り返し作業を簡単に実行
• 無償利用可能
51
MSBuild
• Microsoftが提供するビルドエンジン
• ビルド > テスト の様な繰り返し作業を簡単に実行
• 無償利用可能
• Antに近いXML形式のプロジェクトファイル
• ターゲット、タスク、プロパティ、アイテムなど
から構...
53
!
<Project DefaultTargets="build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- =========== プロパティ =...
MSBuild
• 標準で用意されているタスク
• https://msdn.microsoft.com/ja-jp/library/
7z253716.aspx
54
MSBuild
• 標準で用意されているタスク
• https://msdn.microsoft.com/ja-jp/library/
7z253716.aspx
• コミュニティによって作られたものも多い
• https://github.c...
MSBuild
• タスクは.NETアセンブリとして自作可能
• Taskクラスを継承
• ITaskインターフェイスを実装
56
MSBuild
• タスクは.NETアセンブリとして自作可能
• Taskクラスを継承
• ITaskインターフェイスを実装
• 他のビルドツール
• nmake、NAnt、psake などなど
57
Nuget
58
Nuget
• Windows用のパッケージマネージャ(https://
www.nuget.org/)
59
Nuget
• Windows用のパッケージマネージャ(https://
www.nuget.org/)
• 各種DLL、拡張機能、jsファイルなど様々なものを
ダウンロード、インストール可能
• 依存関係の解決からプロジェクトへの参照追加ま
...
Nuget
• Windows用のパッケージマネージャ(https://
www.nuget.org/)
• 各種DLL、拡張機能、jsファイルなど様々なものを
ダウンロード、インストール可能
• 依存関係の解決からプロジェクトへの参照追加ま
...
62
!
PM> Install-Package NUnit -Version 2.6.4
!
PM> Install-Package NUnitTestAdapter
!
PM> Install-Package ChainingAsserti...
63
!
PM> Install-Package NUnit -Version 2.6.4
!
PM> Install-Package NUnitTestAdapter
!
PM> Install-Package ChainingAsserti...
64
!
PM> Install-Package NUnit -Version 2.6.4
!
PM> Install-Package NUnitTestAdapter
!
PM> Install-Package ChainingAsserti...
Nuget
• ローカルNugetサーバーも設置可能
• チーム内のツール共有、開発環境の共通化
• ファイル共有サーバー上に構築可能
• Webサーバーは「Nuget.Server」パッケージ
65
Nuget
• 社内の開発環境の改善&効率化のためにNuGetを活
用しよう(http://www.buildinsider.net/
enterprise/nugetprivate/01)
• NuGet.Server を利用してプライベート...
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Jenkins AppVeyor
67
自動化のための手段
タスクスケジューラ
Batch File WSH/VBScript PowerShell
NugetMSBuild psake
Executers
68
自動化のための手段
タスクスケジューラ
69
• プログラムやスクリプトを自動実行する機能
70
タスクスケジューラ
• プログラムやスクリプトを自動実行する機能
• Windows 95以降で搭載
• Windows 95では「システムエージェント」
• Windows 98で「タスクスケジューラ」に変更
71
タスクスケジューラ
• 時刻、間隔、イベントなどをトリガーに指定
• 複数のイベントの組み合わせ
• タスク実行に失敗したとき
72
タスクスケジューラ
• 時刻、間隔、イベントなどをトリガーに指定
• 複数のイベントの組み合わせ
• タスク実行に失敗したとき
• すべての実行履歴が保持される
73
タスクスケジューラ
• 時刻、間隔、イベントなどをトリガーに指定
• 複数のイベントの組み合わせ
• タスク実行に失敗したとき
• すべての実行履歴が保持される
• コマンドラインユーティリティとしてSchtasks.exe
が利用可能
74
タスクスケジューラ
75
!
SCHTASKS /Create /S system /U user /P password /RU
runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR
notepad
http...
76
!
SCHTASKS /Create /S system /U user /P password /RU
runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR
notepad
http...
77
!
SCHTASKS /Create /S system /U user /P password /RU
runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR
notepad
!
SC...
• VBScript、PowerShellなどのスクリプト言語から
もAPIを利用可能
78
タスクスケジューラ
• VBScript、PowerShellなどのスクリプト言語から
もAPIを利用可能
• プログラムから利用
• ITaskFolderインターフェイス
• IRegisteredTaskインターフェイス
79
タスクスケジューラ
Jenkins
80
Jenkins
• Java製のCIサーバー
81
Jenkins
• Java製のCIサーバー
• 汎用的なタスクスケジューラとして利用可能
82
Jenkins
• Java製のCIサーバー
• 汎用的なタスクスケジューラとして利用可能
• 豊富なプラグイン
83
Jenkins
• Java製のCIサーバー
• 汎用的なタスクスケジューラとして利用可能
• 豊富なプラグイン
• マスター/スレーブ構成でリモートな制御も可能
84
Jenkins
• CIサーバーとしてはTeamCityとかTFS
• .NETベースでオープンソースな人にはAppVeyor
(http://www.appveyor.com/)
85
どれを使うか
86
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
87
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
• これまでVBScriptで作ってきたものがあるならそれ
を使えばいい
88
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
• これまでVBScriptで作ってきたものがあるならそれ
を使えばいい
• PowerShellのほうが便利な部分があるなら置き換
える
89
どれを使うか
• 特にスクリプトに関しては無理に置き換える必要は
ない
• これまでVBScriptで作ってきたものがあるならそれ
を使えばいい
• PowerShellのほうが便利な部分があるなら置き換
える
• それぞれの得意なところで使う...
どれを使うか
• 普段から「手段」を増やして常に対応できるように
91
どれを使うか
• 普段から「手段」を増やして常に対応できるように
• だが pause お前はダメだ
92
Prochain SlideShare
Chargement dans…5
×

Windowsでの自動化の手段

13 820 vues

Publié le

Windowsでの自動化について考える会 http://connpass.com/event/11779/ #WinAutoMate での発表資料です。

Publié dans : Ingénierie
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... (Unlimited)
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Windowsでの自動化の手段

  1. 1. Windowsでの自動化の手段 1
  2. 2. いつもの作業を効率化する自動化 2
  3. 3. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない 3
  4. 4. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい 4
  5. 5. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい • 長い手順書にはうんざりだ 5
  6. 6. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい • 長い手順書にはうんざりだ • 自動化そのものが好きだな 6
  7. 7. いつもの作業を効率化する自動化 • 退屈な繰り返し作業はしたくない • 複雑な作業のミスを減らしたい • 長い手順書にはうんざりだ • 自動化そのものが好きだな? 7
  8. 8. お品書き
  9. 9. • 今日話すこと • 自動化の手段をざっくり紹介 お品書き
  10. 10. • 今日話すこと • 自動化の手段をざっくり紹介 • 今日はなさないこと • 個々の手段の導入方法 お品書き
  11. 11. お前誰だよ? 11
  12. 12. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 12
  13. 13. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 • 大阪市内でエンジニアしてます 13
  14. 14. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 • 大阪市内でエンジニアしてます • 普段はC++とか.NET言語(主にC#)とか 14
  15. 15. お前誰だよ? • Hidari(ひだり) • Twitter @HIDARI0415 • 大阪市内でエンジニアしてます • 普段はC++とか.NET言語(主にC#)とか • 秘伝のソースのメンテナンスが仕事 15
  16. 16. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyorタスクスケジューラ 16 自動化のための手段 3つのレイヤーで紹介
  17. 17. Scripts NugetMSBuild psake Jenkins AppVeyor 17 自動化のための手段 タスクスケジューラ 3つのレイヤーで紹介
  18. 18. Batch File WSH/VBScript PowerShell Build Tools Jenkins AppVeyor 18 自動化のための手段 タスクスケジューラ 3つのレイヤーで紹介
  19. 19. Batch File WSH/VBScript PowerShell NugetMSBuild psake Executers 19 自動化のための手段 3つのレイヤーで紹介
  20. 20. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 20 自動化のための手段 タスクスケジューラ 3つのレイヤーで紹介 「そういう考え方もあるのか」くらいで見ていただければと
  21. 21. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 21 自動化のための手段 タスクスケジューラ
  22. 22. Scripts NugetMSBuild psake Jenkins AppVeyor 22 自動化のための手段 タスクスケジューラ
  23. 23. Batch File 23
  24. 24. Batch File • コマンドプロンプト/バッチファイル • シェルスクリプト(*.sh)に相当 24
  25. 25. Batch File • コマンドプロンプト/バッチファイル • シェルスクリプト(*.sh)に相当 • バッチファイルの拡張子は*.bat、*.cmd 25
  26. 26. Batch File • コマンドプロンプト/バッチファイル • シェルスクリプト(*.sh)に相当 • バッチファイルの拡張子は*.bat、*.cmd • 実行するインタプリタ • COMMAND.COM(Windows Meまで) • cmd.exe(Windows 2000、XP以降) 26
  27. 27. 27 @echo off ! rem 変数に値を設定します set HOGE="変数の値" ! rem このバッチが存在するフォルダに移動します pushd %0.. ! echo MyAwesomeProgram.exeを実行します。 MyAwesomeProgram.exe ! rem エラー判定 if "%ERRORLEVEL%" == "0" ( echo 成功 ) else ( echo 失敗 ) ! rem 実行結果を確認して終了してください pause Batch File
  28. 28. • 可読性が低い • 構造化しづらい • 再利用性が悪い 28 Batch File
  29. 29. VBScript/WSH 29
  30. 30. VBScript/WSH • Windows Script Host + VBScript 30
  31. 31. VBScript/WSH • Windows Script Host + VBScript • バッチファイルを置き換える • Windows 95から標準搭載 31
  32. 32. VBScript/WSH • Windows Script Host + VBScript • バッチファイルを置き換える • Windows 95から標準搭載 • レジストリやWMIへのアクセスが容易 32
  33. 33. VBScript/WSH • VBScript 33
  34. 34. VBScript/WSH • VBScript • Microsoft Visual Basic Scripting Edition • WSH、ASP上で利用可能 • 組み込みGUI関数 MsgBox、InputBox 34
  35. 35. VBScript/WSH • VBScript • Microsoft Visual Basic Scripting Edition • WSH、ASP上で利用可能 • 組み込みGUI関数 MsgBox、InputBox • WSH+JScriptの組み合わせも 35
  36. 36. 36 Option Explicit ! WScript.Echo "Hello World" ! ' 変数に値を設定します。 Dim x, y ! x = 100 y = 200 ! If x > y Then MsgBox x & "のほうが大きいよ!" Else MsgBox y & "のほうが大きい!" End If VBScript/WSH
  37. 37. VBScript/WSH • 簡単な処理も複雑になりがち 37
  38. 38. VBScript/WSH • 簡単な処理も複雑になりがち • VBScript製ウィルス等の影響もあり敬遠される • デフォルトでWSHが有効で*.vbsファイルが実行 可能 • ex. LoveLetter 38
  39. 39. PowerShell 39
  40. 40. PowerShell • .NET Frameworkを利用したスクリプト言語 • システム管理、自動化 40
  41. 41. PowerShell • .NET Frameworkを利用したスクリプト言語 • システム管理、自動化 • セキュリティ面に配慮 • 実行ポリシーやスクリプトへのデジタル署名 41
  42. 42. PowerShell • 利用可能 • Windows XP • Windows 2003 42
  43. 43. PowerShell • 利用可能 • Windows XP • Windows 2003 • 標準搭載 • Windows Server 2008 R2 • Windows 7 43
  44. 44. PowerShell 44 ! $dirPath = “.Fuga” ! if ( -not (Test-Path $dirPath) ) { mkdir $dirPath Write-Host “$dirPath を作成しました" } else { Write-Host “$dirPath はすでに存在します" } ! Get-ChildItem .Hoge* -Include *.txt -Recurse
  45. 45. PowerShell • Powershell 5.0 Previewが利用可能 45
  46. 46. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 46 自動化のための手段 タスクスケジューラ
  47. 47. Batch File WSH/VBScript PowerShell Build Tools Jenkins AppVeyor 47 自動化のための手段 タスクスケジューラ
  48. 48. MSBuild 48
  49. 49. MSBuild • Microsoftが提供するビルドエンジン 49
  50. 50. MSBuild • Microsoftが提供するビルドエンジン • ビルド > テスト の様な繰り返し作業を簡単に実行 50
  51. 51. MSBuild • Microsoftが提供するビルドエンジン • ビルド > テスト の様な繰り返し作業を簡単に実行 • 無償利用可能 51
  52. 52. MSBuild • Microsoftが提供するビルドエンジン • ビルド > テスト の様な繰り返し作業を簡単に実行 • 無償利用可能 • Antに近いXML形式のプロジェクトファイル • ターゲット、タスク、プロパティ、アイテムなど から構成 52
  53. 53. 53 ! <Project DefaultTargets="build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!-- =========== プロパティ ========== --> <PropertyGroup> <ProjectName>MsBuildSample</ProjectName> </PropertyGroup> <!-- ======= アイテムグループ ======== --> <ItemGroup> <CSFile Include="***.cs"/> <Reference Include="System.dll"/> <Reference Include="System.Data.dll"/> <Reference Include="System.Drawing.dll"/> <Reference Include="System.Windows.Forms.dll"/> <Reference Include="System.XML.dll"/> </ItemGroup> <!-- =========== ターゲット ========== --> <!-- buildターゲット(C#プロジェクトをコンパイル) --> <Target Name="build" > <CSC Sources="@(CSFile)" References="@(Reference)" OutputAssembly="$(ProjectName).exe" TargetType="winexe" /> </Target> <!-- runターゲット(C#プロジェクトのEXEを実行) --> <Target Name="run" DependsOnTargets="build"> <Exec Command="$(ProjectName).exe"/> <Message Text="アプリケーションを実行しました。" /> </Target> </Project> http://codezine.jp/article/detail/674 MSBuild
  54. 54. MSBuild • 標準で用意されているタスク • https://msdn.microsoft.com/ja-jp/library/ 7z253716.aspx 54
  55. 55. MSBuild • 標準で用意されているタスク • https://msdn.microsoft.com/ja-jp/library/ 7z253716.aspx • コミュニティによって作られたものも多い • https://github.com/loresoft/msbuildtasks 55
  56. 56. MSBuild • タスクは.NETアセンブリとして自作可能 • Taskクラスを継承 • ITaskインターフェイスを実装 56
  57. 57. MSBuild • タスクは.NETアセンブリとして自作可能 • Taskクラスを継承 • ITaskインターフェイスを実装 • 他のビルドツール • nmake、NAnt、psake などなど 57
  58. 58. Nuget 58
  59. 59. Nuget • Windows用のパッケージマネージャ(https:// www.nuget.org/) 59
  60. 60. Nuget • Windows用のパッケージマネージャ(https:// www.nuget.org/) • 各種DLL、拡張機能、jsファイルなど様々なものを ダウンロード、インストール可能 • 依存関係の解決からプロジェクトへの参照追加ま でひと通り行ってくれる 60
  61. 61. Nuget • Windows用のパッケージマネージャ(https:// www.nuget.org/) • 各種DLL、拡張機能、jsファイルなど様々なものを ダウンロード、インストール可能 • 依存関係の解決からプロジェクトへの参照追加ま でひと通り行ってくれる • Visual Studioのエクステンションとして利用可能 61
  62. 62. 62 ! PM> Install-Package NUnit -Version 2.6.4 ! PM> Install-Package NUnitTestAdapter ! PM> Install-Package ChainingAssertion-NUnit Nuget
  63. 63. 63 ! PM> Install-Package NUnit -Version 2.6.4 ! PM> Install-Package NUnitTestAdapter ! PM> Install-Package ChainingAssertion-NUnit Nuget ! PM> Install-Package jQuery ! PM> Install-Package jquery.TypeScript.DefinitelyTyped
  64. 64. 64 ! PM> Install-Package NUnit -Version 2.6.4 ! PM> Install-Package NUnitTestAdapter ! PM> Install-Package ChainingAssertion-NUnit Nuget ! PM> Install-Package jQuery ! PM> Install-Package jquery.TypeScript.DefinitelyTyped ! PM> Install-Package Codeer.Friendly
  65. 65. Nuget • ローカルNugetサーバーも設置可能 • チーム内のツール共有、開発環境の共通化 • ファイル共有サーバー上に構築可能 • Webサーバーは「Nuget.Server」パッケージ 65
  66. 66. Nuget • 社内の開発環境の改善&効率化のためにNuGetを活 用しよう(http://www.buildinsider.net/ enterprise/nugetprivate/01) • NuGet.Server を利用してプライベートリポジトリ を構築する(http://blog.shibayan.jp/entry/ 20111017/1318860985) 66
  67. 67. Batch File WSH/VBScript PowerShell NugetMSBuild psake Jenkins AppVeyor 67 自動化のための手段 タスクスケジューラ
  68. 68. Batch File WSH/VBScript PowerShell NugetMSBuild psake Executers 68 自動化のための手段
  69. 69. タスクスケジューラ 69
  70. 70. • プログラムやスクリプトを自動実行する機能 70 タスクスケジューラ
  71. 71. • プログラムやスクリプトを自動実行する機能 • Windows 95以降で搭載 • Windows 95では「システムエージェント」 • Windows 98で「タスクスケジューラ」に変更 71 タスクスケジューラ
  72. 72. • 時刻、間隔、イベントなどをトリガーに指定 • 複数のイベントの組み合わせ • タスク実行に失敗したとき 72 タスクスケジューラ
  73. 73. • 時刻、間隔、イベントなどをトリガーに指定 • 複数のイベントの組み合わせ • タスク実行に失敗したとき • すべての実行履歴が保持される 73 タスクスケジューラ
  74. 74. • 時刻、間隔、イベントなどをトリガーに指定 • 複数のイベントの組み合わせ • タスク実行に失敗したとき • すべての実行履歴が保持される • コマンドラインユーティリティとしてSchtasks.exe が利用可能 74 タスクスケジューラ
  75. 75. 75 ! SCHTASKS /Create /S system /U user /P password /RU runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR notepad https://technet.microsoft.com/ja-jp/windows/ff467963.aspx タスクスケジューラ
  76. 76. 76 ! SCHTASKS /Create /S system /U user /P password /RU runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR notepad https://technet.microsoft.com/ja-jp/windows/ff467963.aspx ! SCHTASKS /Run /TN "Start Backup" タスクスケジューラ
  77. 77. 77 ! SCHTASKS /Create /S system /U user /P password /RU runasuser /RP runaspassword /SC HOURLY /TN rtest1 /TR notepad ! SCHTASKS /Delete /TN "Backup and Restore" https://technet.microsoft.com/ja-jp/windows/ff467963.aspx ! SCHTASKS /Run /TN "Start Backup" タスクスケジューラ
  78. 78. • VBScript、PowerShellなどのスクリプト言語から もAPIを利用可能 78 タスクスケジューラ
  79. 79. • VBScript、PowerShellなどのスクリプト言語から もAPIを利用可能 • プログラムから利用 • ITaskFolderインターフェイス • IRegisteredTaskインターフェイス 79 タスクスケジューラ
  80. 80. Jenkins 80
  81. 81. Jenkins • Java製のCIサーバー 81
  82. 82. Jenkins • Java製のCIサーバー • 汎用的なタスクスケジューラとして利用可能 82
  83. 83. Jenkins • Java製のCIサーバー • 汎用的なタスクスケジューラとして利用可能 • 豊富なプラグイン 83
  84. 84. Jenkins • Java製のCIサーバー • 汎用的なタスクスケジューラとして利用可能 • 豊富なプラグイン • マスター/スレーブ構成でリモートな制御も可能 84
  85. 85. Jenkins • CIサーバーとしてはTeamCityとかTFS • .NETベースでオープンソースな人にはAppVeyor (http://www.appveyor.com/) 85
  86. 86. どれを使うか 86
  87. 87. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない 87
  88. 88. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない • これまでVBScriptで作ってきたものがあるならそれ を使えばいい 88
  89. 89. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない • これまでVBScriptで作ってきたものがあるならそれ を使えばいい • PowerShellのほうが便利な部分があるなら置き換 える 89
  90. 90. どれを使うか • 特にスクリプトに関しては無理に置き換える必要は ない • これまでVBScriptで作ってきたものがあるならそれ を使えばいい • PowerShellのほうが便利な部分があるなら置き換 える • それぞれの得意なところで使う 90
  91. 91. どれを使うか • 普段から「手段」を増やして常に対応できるように 91
  92. 92. どれを使うか • 普段から「手段」を増やして常に対応できるように • だが pause お前はダメだ 92

×