рдЖрдЯреЛрдореЗрдЯрд┐рдВрдЧ рдиреВрдЧреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрдЯ рдкрд░ рдмрдирд╛рддрд╛ рд╣реИ

рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдерд╛


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

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

рдЗрд╕рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдмрдирд╛рдиреЗ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╢рд░реНрдд рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: NuGet, TeamCity, NAnt, Visual Studio 2010, SlowCheetahред

рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ?


рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдПрд▓ рдЯреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореЗрд░реЗ рдкреЛрд╕реНрдЯ рдХрд╡рд░ 2 рдФрд░ 3 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВред

рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдирд╛


рдзреАрд░реЗ-рдзреАрд░реЗ, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ VCS (рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА) рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рддреЗ рд╣реБрдП, рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдИред рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдПрдХ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ (TeamCity) рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣рд╛рд░реНрдб рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред рдЕрд╕реЗрдВрдмрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 4 рдЕрдВрдХреЛрдВ рд╕реЗ рдмрдирд╛ рдерд╛: рд╡реАрд╕реАрдПрд╕ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рд╕рдВрд╢реЛрдзрди рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдкреНрд░рдореБрдЦ рдФрд░ рдорд╛рдореВрд▓реА рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред

[assembly: AssemblyVersion("1.0")] [assembly: AssemblyFileVersion("1.0.0.0")] 

рдиреВрдЧреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрдХреБрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ nuspec рдлрд╛рдЗрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд░рд┐рд▓реАрдЬ рд╢рд╛рдЦрд╛ (рдкреНрд░рддреНрдпреЗрдХ рдЯреАрдо рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдЯреНрд░рд┐рдЧрд░) рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рдмрд╛рдж рд╕рдВрдХреБрд▓ рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред NuGet рдкреИрдХреЗрдЬ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдереЗред

рдирдореВрдирд╛ nuspec рдлрд╝рд╛рдЗрд▓
 <?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>Core</id> <version>1.0.0.0</version> <authors>DefaultCompanyName</authors> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>    </description> <frameworkAssemblies> <frameworkAssembly assemblyName="System.Configuration" targetFramework="net35" /> <frameworkAssembly assemblyName="System.Core" targetFramework="net35"/> <frameworkAssembly assemblyName="System.Drawing" targetFramework="net35"/> <frameworkAssembly assemblyName="System.Runtime.Serialization" targetFramework="net35"/> <frameworkAssembly assemblyName="System.ServiceModel" targetFramework="net35"/> <frameworkAssembly assemblyName="System.Windows.Forms" targetFramework="net35"/> <frameworkAssembly assemblyName="System.Xml" targetFramework="net35"/> </frameworkAssemblies> </metadata> <files> <file src="core\bin\Release\*.dll" target="lib" /> </files> </package> 


рдореБрдЦреНрдп рдмрд┐рд▓реНрдб рдЯреВрд▓ NAnt рдФрд░ MSBuild рдерд╛ред Csproj рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрднрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╕рдордп, рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИрдВред NuGet рдлрд╝рдВрдХреНрд╢рди Enable-PackageRestore (рд╕рдВрд╕реНрдХрд░рдг 1.6 рд╕реЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ) рдЖрдкрдХреЛ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реАрд╕реАрдПрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдПрдХ рд╕рдорд╛рди рдкрд░рд┐рджреГрд╢реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ MSBuild рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрд╡рдпрдВ NuGet рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ... <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> <RestorePackages>true</RestorePackages> ... <SlowCheetahTargets Condition=" '$(SlowCheetahTargets)'=='' ">..\.slowCheetah\SlowCheetah.Transforms.targets</SlowCheetahTargets> ... <Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> <Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" /> </Project> 

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓рдЧрдЗрди рдХреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдпрд╛ рдмрджрд▓рдХрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ SlowCheetah рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ xml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рдХреНрд╖реНрдп = "рд╕рд╛рдордЧреНрд░реА" рдХреЗ рд╕рд╛рде рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рд╡рд░реНрддрди рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Client.ebug.config рдФрд░ Client.Release.config рдлрд╝рд╛рдЗрд▓реЗрдВ Client.config рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдпрд╛ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдк рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрдХрдЯреНрдареЗ рд╣реБрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреАрдо рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдбреАрдмрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрдВрддреНрд░ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореБрдЦреНрдп рдлрд╛рдпрджреЗ рддреНрд╡рд░рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рд╣реИрдВ рдФрд░ рдмреЗрд╡рдХреВрдл рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред

рд╕рдВрджрд░реНрдн


NuGet
TeamCity
NAnt
SlowCheetah

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


All Articles