рд░реЗрдХ + рдЕрд▓реНрдмрд╛рдХреЛрд░ред рд░реВрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ .Net рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

рдЬрдм рдпрд╣ рдХреЛрдбрд╛рдВрддрд░рдг .Net рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ MSBuild рдЙрдкрдпреЛрдЧрд┐рддрд╛ + рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдмрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЫреЛрдЯреА рд╣реИ, рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдХрд╛рдлреА рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде, рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдмрдврд╝рддреА рд╣реИ, рдЙрддреНрдкрд╛рдж рдХреА рд╕рдВрд░рдЪрдирд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЖрдк рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдорд╛рдзрд╛рди рд░реЗрдХ + рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрди рдЧрдпрд╛ред рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рд░реЗрдХ рд░реВрдмреА рдореЗрдВ рд▓рд┐рдЦреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рд░реЗрдХ рдСрди рд╣реЗрдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рд▓реЗрдЦ рдерд╛ Lass_ua (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП, рд╡реИрд╕реЗ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдорд╛рдирд╡), рдЗрд╕рд▓рд┐рдП рдореИрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ рдирд╣реАрдВред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдЕрд╕рд╛рдзрд╛рд░рдг рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ MSBuild рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкреВрд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд░реВрдмреА рдХрд╛рд░реНрдпрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрд╡рд╕рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореБрджреНрд░ рдЦреЛрд▓рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рднреА рд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдкрд░рд┐рдкрдХреНрд╡ рдФрд░ рдкреНрд░рд╕рд┐рджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ

рдЕрд▓реНрдмрд╛рдХреЛрд░ рдХреНрдпрд╛ рд╣реИ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрд▓реНрдмрд╛рдХреЛрд░ рд░реЗрдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдиреЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ред рдпрд╣рд╛рдБ рдЙрдирдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ:

рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ

рд░реЗрдХ рдФрд░ рдЕрд▓реНрдмрд╛рдХреЛрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
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 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЧреИрд▓рд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛, рд░реВрдмреА рд╕рдореБрджрд╛рдп рдиреЗ рд╣рдорд╛рд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рджреЗрдЦрднрд╛рд▓ рдХреА, рдФрд░ рдХреНрд╡реЗрд░реА "рдЧреИрд▓рд┐рдпреЛ рд░реЗрдХ" рдХреА рдкрд╣рд▓реА рдХрдбрд╝реА рдиреЗ рдореБрдЭреЗ рдЧрд┐рдердм рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛: рдЗрд╕реА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬрд┐рдкред

рдЫрд╛рдкреЛрдВ

рд░реЗрдХ + рдПрд▓реНрдмрд╛рдХреЛрд░ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдмрд╣реБрдд рдЬрд▓реНрджреА рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд рдерд╛, рдФрд░ рд╣рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓рдЪреАрд▓рд╛рдкрди рдорд┐рд▓рд╛ред рд░реВрдмреА рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдирдИ рднрд╛рд╖рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдореМрдЬреВрдж рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдХреЛрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЯреБрдХрдбрд╝реЛрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рднрд╛рд╖рд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рд╕реБрдЦрдж рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд░рд┐рдЪрд┐рдд рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд░реБрдХреЗрдВрдЧреЗ, рдореЗрд░реА рдпреЛрдЬрдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЫреЛрдЯреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред

Source: https://habr.com/ru/post/In148545/


All Articles