.NET: рдирд┐рд░реНрднрд░рддрд╛ рдЙрдкрдЪрд╛рд░

рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдХрд╛рд░рдг рдХрд┐рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ? рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╣рд░ рдХреЛрдИ, рдЬрд┐рд╕рдиреЗ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрдбрд╝реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред

рдЕрдм рдореИрдВ JetBrains рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, JetBrains Rider рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдФрд░ .NET рдХреЛрд░ рдХреЛ рд░рд╛рдЗрдбрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реВрдБред рдкрд╣рд▓реЗ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рд╕рд╛рдЭрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ, рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рдереЗред



Cutscene рдХреЗ рддрд╣рдд DotNext 2019 рдорд╛рд╕реНрдХреЛ рд╕рдореНрдореЗрд▓рди рд╕реЗ рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдкреНрд░рддрд┐рд▓реЗрдЦ рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ .NET рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реИред


рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ .NET рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛, рдореБрдЭреЗ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ

рдкреЛрд╕реНрдЯ рд╕рдВрд░рдЪрдирд╛:


  1. рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдореБрджреНрджреЗ
  2. рдХрдареЛрд░ рд░рд┐рдЧ рд▓реЛрдбрд┐рдВрдЧ

  3. .NET рдХреЛрд░

  4. рдбреАрдмрдЧ рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдЙрдирд▓реЛрдб


рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдореБрджреНрджреЗ рдХреНрдпрд╛ рд╣реИрдВ?


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



рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ .NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА

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

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



рд╕рдВрд╕реНрдХрд░рдг рдирд░рдХ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рд╣реИ рдЬреЛ рдмрд╛рдЗрдирд░реА рд╕рдВрдЧрдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдХ рдХреЛ рдлрд┐рдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред .NET рдореЗрдВ, рд╕рдВрд╕реНрдХрд░рдг рдирд░рдХ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ FileLoadException рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрд╕реЗ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



.NET рдореЗрдВ, рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ - рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдирд░рдХ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ System.Collections.Immutableред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЙрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдкрд╛рд╕ рдиреВрдЧреЗрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 1.6.0 рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд╕рдВрд╕реНрдХрд░рдг 1.2.4.0 рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЖрдкрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрд╕реНрдХрд░рдг 1.2.4.0 рдирд╣реАрдВ рд╣реИред рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рдпрд╣ 1.6.0 NuGet рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ? рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЕрд╕реЗрдВрдмрд▓реА рд╡рд░реНрдЬрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХрдИ рдФрд░ рд╡рд░реНрдЬрди рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╕реЗрдВрдмрд▓реА рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг, рдЕрд╕реЗрдВрдмрд▓реА рд╕реВрдЪрдирд╛ рд╕рдВрд╕реНрдХрд░рдгред рдЗрд╕ NuGet рдкреИрдХреЗрдЬ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг (.NET рдорд╛рдирдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЗ рд╕рд╛рде рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдПрдВ рд╣реИрдВред

.NET рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди
рдорд╛рдирдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

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

рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд░реИрдХ рдкрд░ рдХрджрдо рд░рдЦрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред рджреВрд╕рд░реЗ, рдЖрдк рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХрд╛ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ .NET рдХреЛрд░ рдореЗрдВ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░рд╡рд╛рд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░реЗрдЧрд╛ред рдФрд░ рдпрд╣ рд╕рдм рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдПрд╕рдЖрд░рдИ рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рд╡рд░рд┐рд╖реНрда (рдмрд╛рдЗрдВрдбрд┐рдВрдЧ) рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯреАрдо рдореЗрдВ рд╣рд░ рдХреЛрдИ рдЖрддрд╛ рд╣реИ рдФрд░ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдФрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд▓рд┐рдЦрдирд╛ рд╣реИред

рд╕рдЦреНрдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ


рд╕рдЦреНрдд рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдбрд┐рдВрдЧ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ FileLoadExceptionред рд╕рдЦреНрдд рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЛрдВ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВред

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

.NET рдореЗрдВ, рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ - рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╣реЛрддреА рд╣реИ рдпрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдХрд╣реАрдВ рд▓реЛрдб рд╣реЛрддреА рд╣реИред рдЕрд╕реЗрдВрдмрд▓реА рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рджреЛ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рдкрд░, рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ * .csproj, рдФрд░ рд░рдирдЯрд╛рдЗрдо рд╕реНрдЯреЗрдЬ рдореЗрдВ рд╕рдВрджрд░реНрдн рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд╕рдВрджрд░реНрдн рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡реЗ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

// рд╕рд░рд▓ рдирд╛рдо
MyAssembly, рд╕рдВрд╕реНрдХрд░рдг = 6.0.0.0,
рд╕рдВрд╕реНрдХреГрддрд┐ = рддрдЯрд╕реНрде, PublicKeyToken = null

// рдордЬрдмреВрдд рдирд╛рдо
Newtonsoft.Json, рд╕рдВрд╕реНрдХрд░рдг = 6.0.0.0,
рд╕рдВрд╕реНрдХреГрддрд┐ = рддрдЯрд╕реНрде, PublicKeyToken = 30K4fe6b2a6aeed // PublicKey


рдЖрдЗрдП рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдирд╛рдо рджреЛ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВред рдкрд╣рд▓реА рддрд░рд╣ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдирд╛рдо рд╕рд┐рдВрдкрд▓ рдиреЗрдо рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ PublicKeyToken = null рд╣реИред рдПрдХ рдордЬрдмреВрдд рдирд╛рдо рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЙрдирдХрд╛ PublicKeyToken рдЕрд╢рдХреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдореВрд▓реНрдп рд╣реИред



рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ MyUtils рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ MyUtils рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 9.0.0.0 рд╣реИред рдЙрд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд▓рд┐рдВрдХ рд╣реИред рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА MyUtils рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрд╕реНрдХрд░рдг 6.0.0.0ред MyUtils рд╕рдВрд╕реНрдХрд░рдг 9.0.0.0, рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 6.0.0.0 рдореЗрдВ PublicKeyToken = null рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЙрдирдХрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд╛рдо рд╣реИред рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛, 6.0.0.0 рдпрд╛ 9.0.0.0? 9 рд╕рдВрд╕реНрдХрд░рдгред рдХреНрдпрд╛ MyLibrary MyUtils рд╕рдВрд╕реНрдХрд░рдг 9.0.0.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдмрд╛рдЗрдирд░реА рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ?



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



рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдгред MyUtils рдХреЗ рдмрдЬрд╛рдп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ NuGet рдХреА рдПрдХ рдкреВрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╕реНрдЯреНрд░реЙрдиреНрдЧ рд╣реИред рдиреБрдЧреЗрдЯ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рдордЬрдмреВрдд рдирд╛рдо рд╣реИред



рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рдкрд░, 9.0.0.0 рд╕рдВрд╕реНрдХрд░рдг BIN рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд╣рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдз рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ FileLoadExceptionред MyLibrary рдХреЗ рд▓рд┐рдП, рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг 6.0.0.0 рд╕реЗ Newtonsoft.Json, рд╕рдВрд╕реНрдХрд░рдг 9.0.0.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ , рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдкрд░ рдЬрд╛рдХрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ App.configред

рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢





рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рд╕рдВрд╕реНрдХрд░рдг

рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд╛рдо рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ publicKeyToken рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд░реЗрдВрдЬ рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдпрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИ App.config, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред machine.config.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдлрд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ , рд░рдирдЯрд╛рдЗрдо рдХреЗ рдЕрдВрджрд░, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рдорд╛рдирдХ рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 4.7.1 рдкрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 4.7.2 рдкрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдЖрдкрдХреЛ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рди рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реЗ рдЖ рд╕рдХрддрд╛ рд╣реИ .App.config, рдФрд░ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рддреЗ рд╕рдордп рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдо рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рд▓реЗрдЦрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ


рдХреЛрдИ рднреА рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЪрд▓реЛ MSBuild рдХреЛ рдпрд╣ рдХрд╛рд░реНрдп рджреЗрдВ!



рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдФрд░ рдЕрдХреНрд╖рдо

рдХреИрд╕реЗ рдХрд░реЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрдЭрд╛рд╡ред рдЯрд┐рдк рдПрдХ: MSBuild рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдСрдЯреЛ-рдЬреЗрдирд░реЗрд╢рди рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ *.csprojред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдореЗрдВ рдЧрд┐рд░реЗрдЧрд╛ App.config, рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рд░рдирд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, WinExe рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдПApp.configрдмрд╣реБрдзрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдРрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЬреЛ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд▓реЙрдиреНрдЪ рдФрд░ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдереЗ, рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рднреА, рдХрднреА-рдХрднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред



рд╕реНрдерд┐рддрд┐ рдЬрдм рд╣рдо рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЯреЗрд╕реНрдЯ рдЖрдорддреМрд░ рдкрд░ рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдВрд╕ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рднреА рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдпрд╣ рдкрд╣рдЪрд╛рдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ dll-config рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЙрди рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯреНрд╕ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЗрди рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреБрд░рд╛рдирд╛ рдкреНрд░рд╛рд░реВрдк рд╣реИ*.csproj, рдПрд╕рдбреАрдХреЗ-рд╢реИрд▓реА рдирд╣реАрдВ, рдЖрдк рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЙрдЯрдкреБрдЯ рдЯрд╛рдЗрдк рдХреЛ Exe рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ MSBuild рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ *.csproj, рдЬреЛ MSBuild рдХреЛ рдЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рд╣реИрдХ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ, рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ Exe рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдЖрдзреБрдирд┐рдХ Microsoft.NET.Test.Sdk рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

, рддреЛ рдирдП рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП *.csprojрд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╕реНрд╡рдпрдВ рдЙрддреНрдкрдиреНрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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



рдЕрд╕реЗрдВрдмрд▓реА рд░реЗрдлрд░реЗрдВрд╕ рдЬрдирд░реЗрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд░рд┐рдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЛ рд╣рд▓
рдХрд░реЗрдВ

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

рдпрджрд┐ рдЖрдк рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЗрди XML рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рджреЛ MSBuild рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИред рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ResolveAssemblyReferences, рдФрд░ рдпрд╣ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп GenerateBindingRedirectsрдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИApp.configред рдПрдХреНрд╕рдПрдордПрд▓ рд▓реЙрдЬрд┐рдХ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯреНрд╕ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдпрд╛ рдирдП рдЬреЛрдбрд╝рддрд╛ рд╣реИред

XML Configs рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ


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

AppDomain.CurrentDomain.AssemblyResolve += (sender, eventArgs) => 
{ 
   var name = eventArgs.Name; 
   var requestingAssembly = eventArgs.RequestingAssembly; 
   
   return Assembly.LoadFrom(...); // PublicKeyToken should be equal
};


рдЗрд╕рдХреА рдПрдХ рдШрдЯрдирд╛ рд╣реИ, рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ CurrentDomain.AssemblyResolveред рдЗрд╕ рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рд╕реЗ, рд╣рдо рд╕рднреА рдЕрд╕рдлрд╝рд▓ рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рд╣рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдирд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдЖ, рдФрд░ рд╣рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдЕрд╕реЗрдВрдмрд▓реА рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдиреЗ рдкрд╣рд▓реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИ рдпрд╣рд╛рдВ рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕рд╣реА рдЬрдЧрд╣ рд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛, рдмрд╕ рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓реЗрдирд╛ рдФрд░ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ред рдпрд╛ рдпрджрд┐ рд╣рдо рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╡рд╛рдкрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред PublicKeyToken рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд┐рднрд┐рдиреНрди PublicKeyToken рдХреЗ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓реА рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рджреЛрд╕реНрдд рдирд╣реАрдВ рд╣реИрдВред



рдпрд╣ рдИрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЛрдореЗрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдкреНрд▓рдЧрдЗрди рдЕрдкрдиреЗ рдЕрдВрджрд░ рдПрдХ AppDomain рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдпрд╣ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдЙрдирдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕рднреА AppDomain рдореЗрдВ рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреЛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рдкреНрд▓рдЧрдЗрди рдиреЗ рдмрдирд╛рдпрд╛ рд╣реИред рд╣рдо AppDomainManager рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╕рдЦреНрдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ .NET рдХреЛрд░


.NET рдХреЛрд░ рдореЗрдВ "рд╕реНрдЯреНрд░рд┐рдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдбрд┐рдВрдЧ" рдирд╛рдордХ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЪрд╛рд╣реЗ рд╡реЗ рд╕рд╢рдХреНрдд рдирд╛рдо рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИред рдпрджрд┐ рд╣рдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд╕рдбреАрдХреЗ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ, рдФрд░ рдЬрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдПрд╕рдбреАрдХреЗ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЧрд┐рд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреА рд╕рджрд╕реНрдпрддрд╛ рднреА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА .NET рдХреЛрд░ рдореЗрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рднреА рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдХреЛрдб рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
AppDomain.CurrentDomain.AssemblyResolve += (s, eventArgs) => 
{ 
     CheckForRecursion(); 
     var name = eventArgs.Name;
     var requestingAssembly = eventArgs.RequestingAssembly; 
    
     name.Version = new Version(0, 0); 
     
     return Assembly.Load(name); 
};


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдиреЗ рдмреВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╣рдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╢реВрдиреНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ Assembly.LoadрдЙрд╕реА рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ ред рдпрд╣рд╛рдБ рдХреЛрдИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреБрдирд░рд╛рд╡рд░реНрддрди рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд▓реА рдереАред



MyUtils рд╕рдВрд╕реНрдХрд░рдг 0.0.2.0 рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдмрд┐рди рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ MyUtils рд╕рдВрд╕реНрдХрд░рдг 0.0.1.0 рд╣реИред рд╣рдордиреЗ рд╕рдВрд╕реНрдХрд░рдг 0.0.2.0 рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 0.0 рддрдХ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ред рд╕рдВрд╕реНрдХрд░рдг 0.0.1.0 рд╣рдорд╛рд░реЗ рд╕рд╛рде рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдирд┐рдХрд╛рд╕ рдмрд╛рд╣рд░ рдЙрдбрд╝ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 0.0.2 16-1 рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ ред 2 16-1 ред

new Version(0, 0) == new Version(0, 0, -1, -1) 

class Version { 
     readonly int _Build; 
     readonly int _Revision; 
     readonly int _Major; 
     readonly int _Minor; 
} 
(ushort) -1 == 65535


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



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

static IEnumerable GetTypesSafe(this Assembly assembly) 
{ 
    try 
    { 
        return assembly.GetTypes(); 
    }
    catch (ReflectionTypeLoadException e) 
   { 
        return e.Types.Where(x => x != null); 
    } 
}



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

рдордЬрдмреВрдд рдирд╛рдордХрд░рдг


рд╕реНрдЯреНрд░рд╛рдВрдЧ-рдЕрд╕реЗрдВрдмрд▓реА рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рд╕реЗ

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

рдордЬрдмреВрдд рдирд╛рдордХрд░рдг рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рд╕рдорд╛рди рдирд╛рдо рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MyUtils рдХреБрдЫ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рдирд╣реАрдВ рд╣реИ, рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рдЕрд╕реЗрдВрдмрд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдордЬрдмреВрдд рдирд╛рдо рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ PublicKeyToken рд╣реЛрдВрдЧреЗ рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд▓реЛрдбрд┐рдВрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

рдордЬрдмреВрдд рдирд╛рдо: рд╡рд┐рд░рд╛рд╕рдд?




Microsoft рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рдирд╛рдордХрд░рдг рдФрд░ .NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ MSDN рдкрд░ рдХрд╣рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╢рдХреНрдд рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЕрд╕реЗрдВрдмрд▓реА рдХреБрдВрдЬреА рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░ рджреЗрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рд╕рд╢рдХреНрдд рдирд╛рдо рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдХрд╛ рдПрдХ рдирд┐рдЬреА рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗред рдПрд╕рдПрдирдХреЗ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк, рдЬрд┐рд╕рдореЗрдВ рдордЬрдмреВрдд рдирд╛рдо рд╕реНрдерд┐рдд рд╣реИ, рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреБрдВрдЬреА рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо CRL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рд░рд╕реНрддреАрдХрд░рдг рд╕реВрдЪреА рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдм рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдПрд╕рдПрдирдХреЗ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

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



рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕реЗ System.Reactive рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдпреЗ рдХрдИ NuGet рдкреИрдХреЗрдЬ рдереЗ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ Rx-Linq рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдмрд╛рдХреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╣реИред рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдпрд╣ рдПрдХ Microsoft рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╡рд╣ github.com/dotnet рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЪрд▓реЗ рдЧрдП рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ .NET рдлрд╛рдЙрдВрдбреЗрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реБрдЖред рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдордЬрдмреВрдд рдирд╛рдо рдмрджрд▓ рдЧрдпрд╛ рд╣реИред NuGet рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдЕрдВрджрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рддреАрд╕рд░реЗ рддрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдпрд╣ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдордЬрдмреВрдд рдирд╛рдо рд╕рддреНрдпрд╛рдкрди


рдХреИрд╕реЗ рдХрд░реЗрдВ: рдордЬрдмреВрдд рдирд╛рдо рдмрд╛рдИрдкрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ

рдПрдХ рдФрд░ рддрд░реНрдХ рдЬреЛ рдордЬрдмреВрдд рдирд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣реИ рдЬреЛ рдЕрддреАрдд рдХреА рдмрд╛рдд рд╣реИ рдФрд░ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд╣реИ рдХрд┐ рд╡реЗ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрд░реЛрддреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рд╣рдо рдмрд╕ dnSpy рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдФрд░ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╕рдм рдХреБрдЫ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдордЬрдмреВрдд рдирд╛рдо рд╕рддреНрдпрд╛рдкрди рдмрд╛рдпрдкрд╛рд╕ рд╕рдХреНрд╖рдо рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдХреЗрд╡рд▓ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ PublicKeyToken рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рдкрд░реНрдпрд╛рд╡рд░рдг рдЕрдзреНрдпрдпрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЕрднреА рднреА рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдЬреНрд╡рд▓рдВрдд рдЙрджрд╛рд╣рд░рдг IIS рд╣реИред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЕрдЦрдВрдбрддрд╛ IIS рдкрд░ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ (рдордЬрдмреВрдд рдирд╛рдо рд╕рддреНрдпрд╛рдкрди рдмрд╛рдпрдкрд╛рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИ), рдФрд░ рдпрджрд┐ рд╣рдо рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдм рдХреБрдЫ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред

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





рдХрдм рдлрд┐рд▓реНрдореНрд╕рд╡реЙрд░реНрдо рд╡рд░реНрдЬрди рдмрджрд▓рдирд╛ рд╣реИ

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, NuGet рдкреИрдХреЗрдЬ Newtonsoft.Json, рдЗрд╕рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ: 12.0.1, 12.0.2, рдФрд░ рдЗрд╕реА рддрд░рд╣ - рдЗрди рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 12.0.0.0 рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рд╣реИред рд╕рд┐рдлрд╛рд░рд┐рд╢ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рддрдм рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм NuGet рдкреИрдХреЗрдЬ рдХрд╛ рдПрдХ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рддрд╛ рд╣реИред

рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо


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

.NET рдорд╛рдирдХ


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



* рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ

рдпрд╣ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП .NET рдорд╛рдирдХ рд╕рдорд░реНрдерди рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ .NET рдорд╛рдирдХ рд╕рдВрд╕реНрдХрд░рдг 2.1 рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд░рд┐рд▓реАрдЬрд╝, рдЬреЛ .NET рдорд╛рдирдХ 2.1 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧреА рдФрд░ рдмрд╛рдж рдореЗрдВ, рдЕрднреА рддрдХ рдирд┐рдпреЛрдЬрд┐рдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ .NET рдорд╛рдирдХ 2.0 рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдХреНрд╖реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ .NET рдорд╛рдирдХ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдЗрдП рддрд╛рд░рд╛рдВрдХрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.6.1 .NET рдорд╛рдирдХ 2.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рдеред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕реАрдзреЗ рдПрдХ рдРрд╕рд╛ рдлреБрдЯрдиреЛрдЯ рд╣реИ, рдореБрдЭреЗ рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХрд╣рд╛рдВ рд╕реЗ рдорд┐рд▓реАред



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдПрдХ рдЖрд╡реЗрджрди рдЬрд┐рд╕рдореЗрдВ .NET рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣: ConsoleApp рдФрд░ ClassLibraryред рд▓рдХреНрд╖реНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА .NET рдорд╛рдирдХред рдЬрдм рд╣рдо рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦреЗрдВрдЧреЗ, рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рдмрд┐рди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛ред



рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реМ DLL рд╣реЛрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЖрд╡реЗрджрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдмрд╛рдХреА рд╕рдм рдХреБрдЫ .NET рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ .NET рдорд╛рдирдХ 2.0 .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.6.1 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡реЗ рдПрдкреАрдЖрдИ рд╕рдВрдЧрдд рдмрди рдЧрдП, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ .NET 2.0.1 рдореЗрдВ рдорд╛рдирдХ 2.0 рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ ( netstandard.dllрд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ) рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ .NET рдорд╛рдирдХ *ред Dll рдФрд░ рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд╣рд▓реБрдУрдВ рдХреЛ рд╕реАрдзреЗ BIN рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред



рдпрджрд┐ рд╣рдо .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рд▓рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рдмрд┐рди рдореЗрдВ рдЧрд┐рд░ рдЧрдИ рд╣реИ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ 4.7.1 рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ 4.7.2 рдХреЗ рдмрд╛рдж рд╕реЗ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд╣реИрдВред рд╡рд╣рд╛рдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдпрд╣ .NET рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдПрдХ рдЯреНрд╡реАрдЯ рд╣реИ, рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ .NET рд╕реНрдЯреИрдВрдбрд░реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рддреЛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг 4.7.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХреЗ рд╕рд╛рде рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╕рдВрд╕реНрдХрд░рдг 1.5 рдХреЗ рд╕рд╛рдеред

рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо


рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рдХреНрд╖реНрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдХрдо рд╕реЗ рдХрдо 4.7.1, рдЕрдзрд┐рдорд╛рдирддрдГ 4.7.2 рддрдХ рдмрдврд╝рд╛рдПрдВред рдпрджрд┐ рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдПрдВ, рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрди dll рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

.NET рдХреЛрд░


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

.NET рдХреЛрд░ рдПрдкреНрд▓реАрдХреЗрд╢рди


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



рд╣рдо рдХреЗрд╡рд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдирд┐рд░реНрднрд░ рддреИрдирд╛рддреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ dll рд╣реИ, рджреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ runtimeconfig.jsonрдФрд░deps.jsonред .NET рдХреЛрд░ 3.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдПрдХ exe рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддрд╛рдХрд┐ рдЖрдкрдХреЛ .NET рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рдЕрдЧрд░ рд╣рдо рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд╣реИрдВред рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЗрд╕ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдореЗрдВ рдЖрддреА рд╣реИрдВред .NET рдХреЛрд░ 3.0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, .NET рдХреЛрд░ 2.1 рдореЗрдВ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ *.csprojред

рд╕рд╛рдЭрд╛ рд░реВрдкрд░реЗрдЦрд╛рдПрдБ, .runtimeconfig.json





.runtimeconfig.jsonрдЗрд╕рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рд╕реЗрдЯрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рддрд╣рдд рд╕рд╛рдЭрд╛ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди "Microsoft.NETCore.App" рд╕рдВрд╕реНрдХрд░рдг 3.0.0 рдХреЗ рддрд╣рдд рдЪрд▓реЗрдЧрд╛, рдЕрдиреНрдп рд╕рд╛рдЭрд╛ рд░реВрдкрд░реЗрдЦрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рднреА рдпрд╣рд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рд░реНрд╡рд░ рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



.runtimeconfig.jsonрдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдЙрддреНрдкрдиреНрдиред рдФрд░ рдЕрдЧрд░ рд╣рдо рд╕рд░реНрд╡рд░ рдЬреАрд╕реА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕реЗ рд╣рд╛рде рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЖрдк рдпрд╣рд╛рдВ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдпрд╛ рддреЛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ *.csproj, рдпрджрд┐ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ .NET рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╛ рдпрджрд┐ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИruntimeconfig.template.jsonрдФрд░ рдпрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓рд┐рдЦреЗрдВред рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди, рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЕрдиреНрдп рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рди рд╕рд╛рдЭрд╛ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХред



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



рдХрдИ рдорд╛рдирдХ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Microsoft.NETCore.App, рдЬреЛ рдирд┐рдпрдорд┐рдд рдХрдВрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ, AspNetCore.App, рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ WindowsDesktop.App, .NET Core 3 рдореЗрдВ рдирдП рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЬреЛ рджрд░рд╡рд╛рдЬреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдлреЙрд░реНрдо рдФрд░ WPF рдкрд░ред рдкрд┐рдЫрд▓реЗ рджреЛ рд╕рд╛рдЭрд╛ рдврд╛рдВрдЪреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрдВрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд╣рд▓реЗ рдПрдХ рдХреЛ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд╡реЗ рдПрдХ рдирдпрд╛ рд░рдирдЯрд╛рдЗрдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рдПрдХ рдХреЛ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЭрд╛ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ runtimeconfig.jsonрдореЗрдВ рднреА рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдзрд╛рд░ рд╕рд╛рдЭрд╛ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред

рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдХрдЯ ( .deps.json)



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд╛рдВрдЪ - .NET рдХреЛрд░

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

Jetbrains рд╕рд╡рд╛рд░


рд░рд╛рдЗрдбрд░ рдПрдХ .NET IDE рд╣реИред рд╣рд░ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд░рд╛рдЗрдбрд░ рдПрдХ рдЖрдИрдбреАрдИ рд╣реИ рдЬреЛ рдЗрдВрдЯреЗрд▓реАрдЬ рдЖрдИрдбреАрдИрдП рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдлреНрд░рдВрдЯреЗрдВрдб рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛ рдФрд░ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдПрдХ рдмреИрдХрдПрдВрдб рд╣реИред рдмреИрдХрдПрдВрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ R # рд╣реИ, рдЬреЛ IntelliJ IDEA рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмреИрдХрдПрдВрдб рдЕрднреА рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо .NET рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИред
рдпрд╣ рдХрд╣рд╛рдВ рдЪрд▓рддрд╛ рд╣реИ? рд╡рд┐рдВрдбреЛрдЬ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдЕрдиреНрдп рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХ рдкрд░, рдореЛрдиреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

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

рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рд░рд╛рдЗрдбрд░ рдХреЛ .NET рдХреЛрд░ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддреА рд╣реИрдВ


рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ, рднрд▓реЗ рд╣реА рдЗрд╕рдореЗрдВ рдЖрд░ # рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрдбрд╝реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдЖрдЙрдЯ рдСрдл рдореЗрдореЛрд░реА рд╕реЗ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдПрд╕рдбреАрдХреЗ-рд╕реНрдЯрд╛рдЗрд▓ * .csproj рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ ред SDK- рд╢реИрд▓реА * .csproj рдПрдХ рдкреВрд░реНрдг .NET рдХреЛрд░ рд░рд┐рд▓реЛрдХреЗрд╢рди рдХреА рдореБрдЦреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

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

рдлреЗрд╕рд▓рд╛


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

рдЖрдкрдХреЛ рдХрд┐рд╕ рд╣реИрдХреНрд╕ рдореЗрдВ рдЬрд╛рдирд╛ рд╣реИ?


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

static void Method() { 
  if (NetFramework) 
     CallNETFrameworkOnlyMethod();

  ... 
} 
[MethodImpl(MethodImplOptions.NoInlining)] 
static void CallNETFrameworkOnlyMethod() { 
  NETFrameworkOnlyMethod(); 
}


рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдВ рд╣реИ: рд╣рдо рдЕрд╕рдВрдЧрдд рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐ рдЗрдирд▓рд╛рдЗрди рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ NoInliningред

рд╣реИрдХ рдирдВрдмрд░ рджреЛ: рд╣рдореЗрдВ рд╕рд╛рдкреЗрдХреНрд╖ рдкрдереЛрдВ рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рд╣реИ, .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рд╣рдо .NET рдХреЛрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ?



рд╡реЗ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗ .deps.jsonред рдЖрдЗрдП .deps.jsonSystem.Diagnostics.PerformanceCounter рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рджреЗрдЦреЗрдВред рдРрд╕рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрд╕рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ.deps.jsonред рдЗрд╕рдореЗрдВ рдПрдХ рд░рдирдЯрд╛рдЗрдо рд╕реЗрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рд╕рд╛рде рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕рднреА рд░рдирдЯрд╛рдЗрдо рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИред рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкрд░рдлреЙрд░рдореЗрдВрд╕ рдПрдиреНрдХрд╛рдЙрдВрдЯрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ PlatformNotSupportedException рд╡рд╣рд╛рдВ рд╕реЗ рдЙрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ .deps.jsonрдПрдХ рд░рдирдЯрд╛рдЗрдордЯреИрдЧ рд╕реЗрдХреНрд╢рди рднреА рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд░рдлреЙрд░рдореЗрдВрд╕ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдЕрдЧрд▓реА рд╣реИрдХ: рд╣рдо WindowsBase рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдкрд░ рдФрд░ рдореИрдХ рдореЙрдХ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ WindowsBase рдирд╛рдо рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдЭрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ Microsoft.NETCore.App, рднрд▓реЗ рд╣реА рд╣рдо рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рди рд╣реЛрдВред Windows рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдкрд░, Microsoft.WindowsDesktop.AppWindowsBase рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрджрд░ рд╣реИ NETCore.Appред рдЖрдЗрдП .deps.jsonрдЗрди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рджреЗрдЦреЗрдВ, рдЙрди рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬрдмреЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред



рдпрд╣рд╛рдБ рдЕрдВрддрд░ рд╣реИ:



рдЕрдЧрд░ рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдВрдШрд░реНрд╖ рдФрд░ рдХрдИ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ .deps.json, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╕реЗ рдорд┐рд▓рдХрд░ рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ assemblyVersionрдФрд░ fileVersionред .NET рдЧрд╛рдЗрдб рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ fileVersionрдЗрд╕реЗ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ.deps.jsonред рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдорд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬрдм рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ .deps.json, assemblyVersionрдФрд░ fileVersion, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦрд╛ рдХрд┐ рдЪрд╛рд╣реЗ рдЬреЛ рднреА рд╕рдВрд╕реНрдХрд░рдг .deps.jsonрд▓рд┐рдЦреЗ рдЧрдП рд╣реЛрдВ, рдЕрд╕реЗрдВрдмрд▓реА рд╡реИрд╕реЗ рднреА рд▓реЛрдб рд╣реЛрддреА рд░рд╣реЗрдЧреАред



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

рд╕рдорд╛рдзрд╛рди: runtimeconfig рдореЗрдВ рдХрд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ .NET рдХреЛрд░ 1.0 рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо


рддреЛ, .runtime.jsonрдФрд░ .deps.json.NET рдХреЛрд░ рдкрд░ - рдпреЗ рдПрдХ рддрд░рд╣ рдХреЗ рдПрдирд╛рд▓реЙрдЧреНрд╕ рд╣реИрдВ App.configред App.configрдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдЪреАрдЬреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП .deps.json, рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛, рдпрджрд┐ рдЖрдк рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рдкрд░рд┐рджреГрд╢реНрдп рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк .NET рдХреЛрд░ рдкрд░ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдбреАрдмрдЧ рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдЙрдирд▓реЛрдб


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

рд╕рдВрд▓рдпрди рд▓реЙрдЧ





рдмреИрдХ рдЯреВ рдмреЗрд╕рд┐рдХреНрд╕: рдлреНрдпреВрдЬрди рд▓реЙрдЧ рд╡реНрдпреВрдЕрд░ рдЯреВ рдбрд┐рдмрдЧ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЕрд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ
рдорд┐рдЯрд╛рддрд╛ рд╣реИ

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



рдлреНрдпреВрдЬрди рд▓реЙрдЧ рд╡реНрдпреВрдЕрд░ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ WinDbg рд╕реЗ рднреА рдмрджрддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЦрд┐рдбрд╝рдХреА рднреА рдЦрд┐рдВрдЪрд╛рд╡ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдлрд┐рд░ рднреА, рдЖрдк рдпрд╣рд╛рдВ рдЪреЗрдХрдорд╛рд░реНрдХ рдХреЛ рдЫреЗрдж рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЪреЗрдХрдорд╛рд░реНрдХ рдХрд╛ рдХреМрди рд╕рд╛ рд╕реЗрдЯ рд╕рд╣реА рд╣реИред



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



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

рд░рдирдЯрд╛рдЗрдо рдЗрд╡реЗрдВрдЯреНрд╕





рд▓реЙрдЧ

рдСрди рд░рдирдЯрд╛рдЗрдо рдЗрд╡реЗрдВрдЯреНрд╕ рдореЛрдиреЛ рдкрд░, рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд▓реЙрдЧ рдХреЛ рдЕрдВрддрддрдГ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ stdoutрдФрд░ stderrред рдЗрддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░реЛрдмрд┐рдВрдЧ - .NET рдХреЛрд░
рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди / рдбрд┐рдЬрд╝рд╛рдЗрди рдбреЙрдХреНрд╕ / рд╣реЛрд╕реНрдЯ рдЯреНрд░реЗрд╕рд┐рдВрдЧ

ред .NET рдХреЛрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рднреА рд╣реЛрддрд╛ COREHOST_TRACEрд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ stderrред .NET рдХреЛрд░ 3.0 рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рдЪрд░ рдореЗрдВ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЙрдЧ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ COREHOST_TRACEFILEред


рдПрдХ рдРрд╕реА рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдПрдХ рдШрдЯрдирд╛ рд╣реИ AssembleResolveред рдПрдХ рджреВрд╕рд░реА рдЙрдкрдпреЛрдЧреА рдШрдЯрдирд╛ рд╣реИ, рдпрд╣ FirstChanceExceptionред рдЖрдк рдЗрд╕реЗ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдХрд┐рд╕реА рдиреЗ рдХреЛрд╢рд┐рд╢ рд▓рд┐рдЦреА рд╣реЛ..рдЬрд╣рд╛рдБ рдФрд░ рд╕рднреА рдирд┐рд╖реНрдкрд╛рджрдиреЛрдВ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛, рдЬрд╣рд╛рдБFileLoadExceptionрд╣реБрдИред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ perfview, рдФрд░ рдпрд╣ .NET рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо


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

рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдкрдврд╝реЗрдВ:



DotNext 2020 Piter . , 8 JUG Ru Group.

All Articles