рдЬрдм рдпрд╣ рдХреЛрдбрд╛рдВрддрд░рдг .Net рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ MSBuild рдЙрдкрдпреЛрдЧрд┐рддрд╛ + рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдмрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЫреЛрдЯреА рд╣реИ, рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдХрд╛рдлреА рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде, рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдмрдврд╝рддреА рд╣реИ, рдЙрддреНрдкрд╛рдж рдХреА рд╕рдВрд░рдЪрдирд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЖрдк рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдорд╛рдзрд╛рди рд░реЗрдХ + рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрди рдЧрдпрд╛ред рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рд░реЗрдХ рд░реВрдмреА рдореЗрдВ рд▓рд┐рдЦреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рд░реЗрдХ рдСрди рд╣реЗрдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ
рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд
рд▓реЗрдЦ рдерд╛
Lass_ua (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП, рд╡реИрд╕реЗ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдорд╛рдирд╡), рдЗрд╕рд▓рд┐рдП рдореИрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ рдирд╣реАрдВред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдЕрд╕рд╛рдзрд╛рд░рдг рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ MSBuild рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкреВрд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд░реВрдмреА рдХрд╛рд░реНрдпрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрд╡рд╕рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореБрджреНрд░ рдЦреЛрд▓рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рднреА рд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдкрд░рд┐рдкрдХреНрд╡ рдФрд░ рдкреНрд░рд╕рд┐рджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ
рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХреНрдпрд╛ рд╣реИ?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
рдПрд▓реНрдмрд╛рдХреЛрд░ рд░реЗрдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдиреЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ред рдпрд╣рд╛рдБ рдЙрдирдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ:
- ASP.NET рдХрдВрдкрд╛рдЗрд▓рд░
- рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЬрд╛рдирдХрд╛рд░реА рдЬрдирд░реЗрдЯрд░
- рд╕реАрдПрд╕рд╕реА - рд╕реА-рд╢рд╛рд░реНрдк рдХрдВрдкрд╛рдЗрд▓рд░
- Exec - рдХрд┐рд╕реА рднреА рдордирдорд╛рдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
- рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рд╡рд╛рд╕реА
- MSBuild
- MSpec
- MSTest
- Nant
- NChurn
- NCover рд╕рд╛рдВрддреНрд╡рдирд╛
- NCover рд░рд┐рдкреЛрд░реНрдЯ
- NDepend
- NugetPack - рдПрдХ .nuspec рдлрд╝рд╛рдЗрд▓ рд╕реЗ .nuget рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБ
- NugetPush - рдкреБрд╢ .nuget рдкреИрдХреЗрдЬ рдСрдирд▓рд╛рдЗрдиред
- NugetPublish - .nuget рд╕рдВрдХреБрд▓ рдХреЛ рдСрдирд▓рд╛рдЗрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
- Nunit
- Nuspec - .nuget рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ .nuspec рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
- рдЖрдЙрдЯрдкреБрдЯ - рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рд╣рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдг рдЖрдЙрдЯрдкреБрдЯ рдХрд╛рд░реНрдп
- plink
- SQLCmdTask
- рдЦреЛрд▓рдирд╛
- XUnit
- рдЬрд╝рд┐рдк
рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ
рд░реЗрдХ рдФрд░ рдЕрд▓реНрдмрд╛рдХреЛрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
gem install rake
gem install albacore
рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЕрдкрдиреЗ рд░реЗрдХрдлрд╛рдЗрд▓ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреНрд▓рдЧ рдХрд░реЗрдВ
require 'albacore'
рдЕрдм, рд░реЗрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╣реИрдВ MSBuild (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рджрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде MSBuild.exe рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛) рдФрд░ Exec (Windows рдХрдорд╛рдВрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ рдЖрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛)
рд╣рдо MSBuild рдХрд╣рддреЗ рд╣реИрдВ:
msbuild :build_solution do |msb| msb.properties = { :configuration => :Debug } msb.targets = [ :Clean, :Build ] msb.solution = "path/to/your/solution.sln" end
рдпрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХ рдХреНрд╖реЗрддреНрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢
рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВредExec рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреЛ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХрдорд╛рдВрдб рд╕реНрд╡рдпрдВ рдФрд░ рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░
exec do |cmd| cmd.command = "LIB\\sgen\\sgen.exe" cmd.parameters = "BIN\\mylovely.dll /force" end
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХрд╛рд░реНрдп рд╕реВрдЪреА рдЕрднреА рднреА рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рдЬреЛ рдХрд┐ .Net рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП
рдЧреИрд▓рд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛, рд░реВрдмреА рд╕рдореБрджрд╛рдп рдиреЗ рд╣рдорд╛рд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рджреЗрдЦрднрд╛рд▓ рдХреА, рдФрд░ рдХреНрд╡реЗрд░реА "рдЧреИрд▓рд┐рдпреЛ рд░реЗрдХ" рдХреА рдкрд╣рд▓реА рдХрдбрд╝реА рдиреЗ рдореБрдЭреЗ рдЧрд┐рдердм рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛: рдЗрд╕реА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬрд┐рдкред
рдЫрд╛рдкреЛрдВ
рд░реЗрдХ + рдПрд▓реНрдмрд╛рдХреЛрд░ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдмрд╣реБрдд рдЬрд▓реНрджреА рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд рдерд╛, рдФрд░ рд╣рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓рдЪреАрд▓рд╛рдкрди рдорд┐рд▓рд╛ред рд░реВрдмреА рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдирдИ рднрд╛рд╖рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдореМрдЬреВрдж рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдХреЛрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЯреБрдХрдбрд╝реЛрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рднрд╛рд╖рд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рд╕реБрдЦрдж рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд░рд┐рдЪрд┐рдд рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд░реБрдХреЗрдВрдЧреЗ, рдореЗрд░реА рдпреЛрдЬрдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЫреЛрдЯреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред