MSBuild рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░

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

рдореЗрдиреНрдпреВ



рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ ( рдореЗрдиреВ )


MSBuild рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд▓рдХреНрд╖реНрдп рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪрд░рдг (рдШрдЯрдирд╛) рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдорд╛рдирдХ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЯрд╛рд╕реНрдХ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдорд╛рдирдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд▓рдХреНрд╖реНрдпреАрдХрд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рдЙрджреНрдзрд░рдг ( https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-targets ):
рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд░рдо рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдЯреА рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦрд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред

MSBuild рдмрд┐рд▓реНрдб рдЬреАрд╡рдирдЪрдХреНрд░ ( рдореЗрдиреВ )


MSBuild рдХреЗ рд▓рд┐рдП, Microsoft рдиреЗ рдХрдИ рдорд╛рдирдХ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рд╣реИрдВ (рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ Microsoft.Common.targets, Microsoft.CSharp.targets, рдЖрджрд┐)ред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗред рдХреБрдЫ рдорд╛рдирдХ рд▓рдХреНрд╖реНрдп (рдЖрджреЗрд╢рд┐рдд):

рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА (рд╕реНрдкреЙрдпрд▓рд░)
  • BeforeRebuild
  • рд╕реНрд╡рдЪреНрдЫ
  • BeforeBuild
  • BuildOnlySettings
  • PrepareForBuild
  • PreBuildEvent
  • ResolveReferences
  • PrepareResources
  • ResolveKeySource
  • рд╕рдВрдХрд▓рди
  • UnmanagedUnregistration
  • GenerateSerializationAssemblies
  • CreateSatelliteAssemblies
  • GenerateManifests
  • GetTargetPath
  • PrepareForRun
  • UnmanagedRegistration
  • IncrementalClean
  • PostBuildEvent
  • AfterBuild
  • AfterRebuild


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

рд▓рдХреНрд╖реНрдп рдХреА рд╕реВрдЪреА рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдЖрдк / pp: рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЖрдпрд╛рдд рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ (.targets рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рд╣рд┐рдд)ред рдЖрдк рдЗрд╕рдореЗрдВ рдХрдИ рд▓рдХреНрд╖реНрдп рдФрд░ рдЪрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдзрдиреНрдпрд╡рд╛рдж рдЯрд┐рдк рдХреЗ рд▓рд┐рдП aikixd )ред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рддреИрдпрд╛рд░ рдХрд░рдирд╛ ( рдореЗрдиреВ )


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:

  • рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЗрдВрд╕реНрдЯреЙрд▓реНрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ
  • MSBuildExample рдирд╛рдо рдХреЗ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
  • рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрд▓реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ MSBuildExample.csproj рдлрд╝рд╛рдЗрд▓ рдвреВрдВрдвреЗрдВ
  • рдиреЛрдЯрдкреИрдб рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдкрд╛рджрдХ рдореЗрдВ MSBuildExample.csproj рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ

рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ MSBuildExample.csproj рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдФрд░ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдХреЛрдб рдХреЛ рдЕрдВрддрд┐рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреИрдЧ рдореЗрдВ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ .csproj рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЫрд╡рд┐

рдЪреЗрддрд╛рд╡рдиреА! .Csproj рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдХреЗрд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ ред
рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Visual Studio рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдмрд┐рд▓реНрдб рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдорд╛рдзрд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЫрд╡рд┐

рдкрд░рд┐рдгрд╛рдо рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ (рдиреАрдЪреЗ) рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдореЗрдиреВ рдЖрдЗрдЯрдо рджреЗрдЦреЗрдВ => рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрд▓реЗрдВред

рдЫрд╡рд┐


MSBuild рдореЗрдВ рд▓рдХреНрд╖рд┐рдд ( рдореЗрдиреВ )


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

рд▓рдХреНрд╖реНрдп рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг (рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓рд╛)
рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

<Target Name="AfterBuild"> <Message Text="AfterBuild event" Importance="high"></Message> </Target> <Target Name="BeforeBuild"> <Message Text="BeforeBuild event" Importance="high"></Message> </Target> 

рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо (рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛):
...
рдШрдЯрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ
...
рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж
...


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯрд╛рд╕реНрдХ рд╕рдВрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╣рдордиреЗ Visual Studio рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ FirstBuild рдФрд░ AfterBuild рдХреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред
рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд▓рдХреНрд╖реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ!

рд▓рдХреНрд╖реНрдп рдкреБрдирд░реНрд▓реЗрдЦрди рдЙрджрд╛рд╣рд░рдг (рд╕реНрдкреЙрдЗрд▓рд░)
рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

 <Target Name="BeforeBuild"> <Message Text="First message" Importance="high"></Message> </Target> <Target Name="BeforeBuild"> <Message Text="Second message" Importance="high"></Message> </Target> 

рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо (рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛):
...
рджреВрд╕рд░рд╛ рд╕рдВрджреЗрд╢
...


рдХреЗрд╡рд▓ рджреВрд╕рд░рд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рд▓рдХреНрд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗ рдФрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдореВрд▓реНрдп рд╕реЗ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ MSBuild рд▓рдХреНрд╖реНрдп ( рдореЗрдиреВ ) рдмрдирд╛рдирд╛


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

рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ (рдмрд┐рдЧрд╛рдбрд╝рдиреЗ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

  <Target Name="BeforeBuild"> <Message Text="BeforeBuild event" Importance="high"></Message> </Target> <Target Name="MyCustomBeforeTarget" BeforeTargets="BeforeBuild"> <Message Text="MyCustomBeforeTarget event" Importance="high"></Message> </Target> <Target Name="MyCustomAfterTarget" AfterTargets="BeforeBuild"> <Message Text="MyCustomAfterTarget event" Importance="high"></Message> </Target> 

рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо (рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛):
...
MyCustomBeforeTarget рдИрд╡реЗрдВрдЯ
рдШрдЯрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ
MyCustomAfterTarget рдИрд╡реЗрдВрдЯ
...


рджреЛ рдХрд╕реНрдЯрдо рд▓рдХреНрд╖реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ - MyCustomBeforeTarget рдФрд░ MyCustomAfterTargetред
MyCustomBeforeTarget рд▓рдХреНрд╖реНрдп рдХреЛ рдкрд╣рд▓реЗ рджрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛:

 BeforeTargets="BeforeBuild" 

MyCustomAfterTarget рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛:

 AfterTargets="BeforeBuild" 

MSBuild рдореЗрдВ рдореЗрдиреВ ( рдореЗрдиреВ )


рдпрд╣ рдЖрд▓реЗрдЦ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдп рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ , Microsoft рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВред

рдЖрдЗрдП рдЯрд╛рд╕реНрдХ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

рд╣рд╛рд▓рдд рдкреИрд░рд╛рдореАрдЯрд░ (рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓рд╛)
рд╣рд╛рд▓рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рдЙрджреНрдзрд░рдг docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-task-reference :
рдПрдХ рдмреВрд▓рд┐рдпрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЬреЛ MSBuild рдЗрдВрдЬрди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

 <Target Name="BeforeBuild"> <Message Text="Current configuration is Debug" Condition="'$(Configuration)' == 'Debug'" Importance="high"></Message> <Message Text="Current configuration is Release" Condition="'$(Configuration)' == 'Release'" Importance="high"></Message> </Target> 

рдпрджрд┐ рдбрд┐рдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ (рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдкрд╡рд░реНрдЬрд┐рдд):
...
рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдбреАрдмрдЧ рд╣реИ
...
рдпрджрд┐ рд╕рдорд╛рдзрд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рд┐рд▓реАрдЬрд╝ рдЪрдпрдирд┐рдд рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрд╣рд┐рд╖реНрдХреГрдд):
...
рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рд┐рд▓реАрдЬрд╝ рд╣реИ
...
рдЖрдк .csproj рдореЗрдВ рдЪрд░ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ $ (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди) рдореИрдХреНрд░реЛ рдФрд░ рдЕрдиреНрдп рдореИрдХреНрд░реЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╣рд╛рдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-conditions

Csproj (рд╕реНрдкреЙрдЗрд▓рд░) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрд░рд┐рднрд╛рд╖рд╛
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рда рд╣реИ рдЬреЛ рдПрдХреАрдХреГрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрджреЗрд╢ рдкрд╛рда рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЪрд░ рдореЗрдВ рд░рдЦреЗрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

 <PropertyGroup> <MessageText>Current configuration is $(Configuration)</MessageText> </PropertyGroup> <Target Name="BeforeBuild"> <Message Text="$(MessageText)" Condition="'$(Configuration)' == 'Debug'" Importance="high"></Message> <Message Text="$(MessageText)" Condition="'$(Configuration)' == 'Release'" Importance="high"></Message> </Target> 

рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрддреНрддрд┐ рд╕рдореВрд╣ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛, рдПрдХ рддреНрд░реБрдЯрд┐ рдЬрд╛рд░реА рдХрд░рдирд╛ (рдмрд┐рдЧрд╛рдбрд╝рдирд╛)
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ App.Debug.config рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддреЗ рд╣реИрдВред рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд┐рд▓реНрдб рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реВрдЪреА рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред
рд╣рдо рддреНрд░реБрдЯрд┐ рдХрд╛рд░реНрдп рдФрд░ рд╕реНрдерд┐рддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

 <Target Name="BeforeBuild"> <Error Condition="!Exists('App.Debug.config')" Text="File App.Debug.config not found"></Error> </Target> 

рдкрд░рд┐рдгрд╛рдо:
рдЫрд╡рд┐

рдПрдХреНрдЬрд╝рд┐рд╕реНрдЯ рдХреНрд▓реЙрдЬрд╝ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ .csproj рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдПрдХ рд╕реЗ рдКрдкрд░ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП '../' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ '[DirectoryName] /App.Debug.config' рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ (рдмрд┐рдЧрд╛рдбрд╝рдирд╛)
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдХреЙрдкреА рдХрд╛рд░реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдХрд╛рд░реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, App.config рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд┐рди / [рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди] / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЛ App.config рдФрд░ App.test.config рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

 <Target Name="BeforeBuild"> <Copy SourceFiles="App.config;App.config" DestinationFiles="$(OutputPath)/Test/App.config;$(OutputPath)/Test/App.test.config"></Copy> </Target> 

SourceFiles рд╕рдВрдкрддреНрддрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИред рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХреЗрдд, рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдПред

рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рдирдлрд╛рдЗрд▓реНрд╕ рдкреНрд░реЙрдкрд░реНрдЯреА рдлрд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рдРрд╕реА рд╢реНрд░реЗрдгреА рд╣реИ рдЬрд╣рд╛рдВ рдлрд╛рдЗрд▓реЛрдВ рдХреА рдирдХрд▓ рдХреА рдЬрд╛рдПрдЧреАред рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХреЗрдд, рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдПред

рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдЗрди .csproj рдкрд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ $ (рдЖрдЙрдЯрдкреБрдЯрдкрд╛рде) рдореИрдХреНрд░реЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВред

рдЪрд░ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ .csproj ( рдореЗрдиреВ )


.Csproj рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдорд╛рдирдХ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕реВрдЪреА https://msdn.microsoft.com/en-us/library/c02as0cs.aspx рдкрд░ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рдпрд╣рд╛рдБ https://msdn.microsoft.com/en-us/ рдкреБрд╕реНрддрдХрд╛рд▓рдп / bb629394.aspx ред рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдореИрдХреНрд░реЛрдЬрд╝ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  • $ (MSBuildToolsPath) - MSBuild рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, C: \ Program Files (x86) \ MSBuild \ 14.0 \ Binред рдкрде рдХрд╛ рд╕рдВрдпреЛрдЬрди рдХрд░рддреЗ рд╕рдордп, рдЗрд╕ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд▓реИрд╢ рдХреЗ рд╕рд╛рде рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $ (MSBuildToolsPath) \ Microsoft.eb.Publishing.Tasks.dllред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкрде рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реАред
  • $ (рдЖрдЙрдЯрдкреБрдЯрдкрд╛рде) - рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрдеред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд┐рди \ рд╕реНрдЯреЗрдЬред рдЗрд╕ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд▓реИрд╢ рдХреЗ рд╕рд╛рде рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $ (OutputPath) \ $ (TargetFileName) .configред
  • $ (TargetFileName) - рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MSBuildExample.exeред рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рдкреНрд░рд╛рд░реВрдк рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • $ (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди) рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдирд╛рдо рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рд▓реАрдЬрд╝, рдбреАрдмрдЧ
  • $ (IntermediateOutputPath) - obj рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрдеред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, obj \ рд╕реНрдЯреЗрдЬред

рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрддреНрддрд┐ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг MSBuild рдореЗрдВ рдХрд╛рд░реНрдп рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓рд┐рдВрдХ ( рдореЗрдиреВ )


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


All Articles