Autofixture: рдХреЛрд░рд╕реАрдПрд▓рдЖрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдордИ 2015  ┬╖  77рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: AutoFixture/AutoFixture

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ AutoFixture рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирдП DNX рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

enhancement good first issue

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╕ рд╕рднреА рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - AutoFixture PR (#773) рдХреЗ рд▓рд┐рдП .Net рдорд╛рдирдХ рд╕рдорд░реНрдерди рдХреЛ v4 рд╢рд╛рдЦрд╛ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рд╣рдорд╛рд░реЗ рдирд┐рдЬреА рдлрд╝реАрдб рд╕реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╕рднреА 77 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрднреА рдирд╣реАрдВ, рдХрдо рд╕реЗ рдХрдоред рдбреАрдПрдирдПрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ?

рд╣рд╛рд╣рд╛ .. рдпрд╣ рдирдпрд╛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдПрд╕рдкреАрдиреЗрдЯ рдврд╛рдВрдЪрд╛ рд╣реИред https://github.com/aspnet/DNX

рд░рдирдЯрд╛рдЗрдо "net451" рдЖрджрд┐ рдХреЗ рдмрдЬрд╛рдп "dnx451" рд╣реИред

рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ "рд╕рдорд░реНрдерди" рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ .NET 4 рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ ASP.NET 5 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ?

ASPNET 5 рдХрдИ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рд╣рдо рдЕрднреА рдХреЗрд╡рд▓ dnx рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ ASPNET 5 рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рд╣реИред рд╣рдорд╛рд░рд╛ рдХреЛрдб рд╡рд░реНрддрдорд╛рди рдореЗрдВ "net451" рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрд╕рдВрдЧрдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдареАрдХ рдЪрд▓рддреЗ рд╣реИрдВред рдЬреЗрд╕рди:

{
"рдирд┐рд░реНрднрд░рддрд╛": {

     "xunit.runner.dnx": "2.1.0-*",
     "xunit":"2.1.0-*",
    "AutoFixture.Xunit2":"3.30-*",
    "NSubstitute": "1.8.0",
    "ManagementWeb": "",
    "Microsoft.AspNet.Mvc": "6.0.0-beta4",
    "AutoFixture": "3.30.4-*",
    "AutoFixture.AutoNSubstitute": "3.30.4-*",
    "Microsoft.Azure.Documents.Client": "0.9.2-preview",
    "WindowsAzure.Storage": "4.4.1-*",
    "DeepEqual": "1.1-*"
},
 "frameworks": {
    "dnx451": { }
},
"commands": {
    "test": "xunit.runner.dnx"
}

}

рджрд┐рд▓рдЪрд╕реНрдкред рдореБрдЭреЗ рдЙрд╕ рдЖрджрдореА рдХреЛ рдмрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд╕ рдХрд┐рдпрд╛?

рдирд╣реАрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдирд╣реАрдВред рдЖрдИрдЖрдИрдЖрд░рд╕реА рдСрдЯреЛрдлрд┐рдХреНрд╕реНрдЪрд░ рд╣рдореЗрд╢рд╛ рдПрд╕реНрдкрдиреЗрдЯ 5 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЕрддреАрдд рдореЗрдВ рдореБрдЭреЗ рдПрдХреНрд╕рдпреВрдиреАрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рдереАред рдЕрдм рдЬрдмрдХрд┐ AF рдХреЗ рд▓рд┐рдП xUnit 2 рд╕рдорд░реНрдерди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ DNX рдФрд░ xUnit рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╡рд┐рдЪрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдХреЛрд░рд╕реАрдПрд▓рдЖрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди" рд╣реИ, рдбреАрдПрдирдПрдХреНрд╕ рдирд╣реАрдВред рдХреБрдЫ рднреА рдЬреЛ .NET Framework 4.5 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╡рд╣ DNX рдкрд░ 4.5 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред CoreCLR рдХреЛ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХрд┐рддрдирд╛ред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ CoreCLR рдХреЗ рд▓рд┐рдП рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЯреВрдЯрддрд╛ рд╣реИред

рд╣рд╛рдБ, рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдореЗрд░рд╛ рдорддрд▓рдм рдХреЛрд░рд╕реАрдПрд▓рдЖрд░ рдерд╛, рд╕рд┐рд░реНрдл рдбреАрдПрдирдПрдХреНрд╕ рдирд╣реАрдВред

рдХреЗрд╡рд▓ coreclr рд░реЗрдкреЛ рдореЗрдВ рджреЗрдЦрдиреЗ рд╕реЗ , рдореЗрд░реЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рд╣реИ? рдмреАрдЯрд╛? рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛?

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

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, @moodmosaic AtomEventStore (рдСрдЯреЛрдлрд┐рдХреНрдЪрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛) рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рджрдпрд╛рд▓реБ рдерд╛

AutoFixture рд╕реНрд░реЛрддреЛрдВ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛, рдореИрдВ рдЖрдкрдХреЗ рдЖрдХрд▓рди рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ: рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрднрд╡ рд╣реИрдВред #if DNX_* -рд╢реИрд▓реА рдирд┐рд░реНрджреЗрд╢ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреЗ рдпрджрд┐ рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рдорд░реНрдерди рд╣реИред

CoreCLR рдХрдореЛрдмреЗрд╢ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8 рдХреЗ рдмрд╛рдж рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

ASP.NET 5 рдирд╡рдВрдмрд░ рдореЗрдВ RC рд╣реЛрдЧрд╛, Linux рдХреЗ рд▓рд┐рдП CoreCLR рдФрд░ рдирд╡рдВрдмрд░ 2015 рдореЗрдВ Mac рднреА RC рд╣реЛрдЧрд╛ред CoreFX рдХреЗ рд╕рд╛рдеред 1Q2016 рдХреЗ рд▓рд┐рдП рдирд┐рдпреЛрдЬрд┐рдд рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬрд╝ 1.0ред

рдпрд╣ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдХреЛрд░рд╕реАрдПрд▓рдЖрд░ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ _4.0_ рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рдЬреЛрдбрд╝рд╛ рд╣реИред

рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдореИрдВ Ploeh.AutoFixture рдЕрд╕реЗрдВрдмрд▓реА рдкрд░ рдПрдкреАрдЖрдИ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ:

autofixture-compatibility

рд╢реИрдВрдкреЗрди рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рд╡рд╣ рд▓рдЧрднрдЧ 3% рдЕрд╕рдорд░реНрдерд┐рдд рдкреНрд░рддреАрдХреЛрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рдмрд▓реНрдХрд┐ рдореМрд▓рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

| рд▓рдХреНрд╖реНрдп рдкреНрд░рдХрд╛рд░ | рд▓рдХреНрд╖реНрдп рд╕рджрд╕реНрдп |
| --- | --- |
| System.Console | рдПрдо:System.Console.get_Out |
| рд╕рд┐рд╕реНрдЯрдо.рдереНрд░реЗрдбрд┐рдВрдЧ.рдереНрд░реЗрдб | рдПрдо: рд╕рд┐рд╕реНрдЯрдоред рдереНрд░реЗрдбрд┐рдВрдЧред рдереНрд░реЗрдбред get_ManagedThreadId |
| рд╕рд┐рд╕реНрдЯрдо.рдереНрд░реЗрдбрд┐рдВрдЧ.рдереНрд░реЗрдб | рдПрдо: рд╕рд┐рд╕реНрдЯрдоред рдереНрд░реЗрдбрд┐рдВрдЧред рдереНрд░реЗрдбред get_CurrentThread |
| System.Reflection.ICustomAttributeProvider | M:System.Reflection.ICustomAttributeProvider.GetCustomAttributes(System.Type,System.Boolean) |
| System.Net.Mail.MailAddress | M:System.Net.Mail.MailAddress.#ctor(System.String) |
| System.SerializableAttribute | M:System.SerializableAttribute.#ctor |
| System.Runtime.Serialization.SerializationInfo | рдЯреА: System.Runtime.Serialization.SerializationInfo |
| System.Reflection.ParameterInfo | M:System.Reflection.ParameterInfo.IsDefined(System.Type,System.Boolean) |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо:System.Type.get_IsGenericTypeDefinition |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо:System.Type.get_IsEnum |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо: System.Type.get_BaseType |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо:System.Type.get_IsPrimitive |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо: System.Type.get_Assembly |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо:System.Type.get_IsGenericType |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | M:System.Type.GetTypeCode(System.Type) |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо:System.Type.get_IsClass |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо:System.Type.get_IsValueType |
| рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рдХрд╛рд░ | рдПрдо: System.Type.get_IsAbstract |
| System.Reflection.MemberInfo | рдПрдо: рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рддрд┐рдмрд┐рдВрдм.MemberInfo.get_ReflectedType |
| System.Reflection.PropertyInfo | рдПрдо: System.Reflection.PropertyInfo.GetSetMethod |
| рд╕рд┐рд╕реНрдЯрдо.рдЕрдкрд╡рд╛рдж | M:System.Exception.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) |
| System.Reflection.MethodBase | рдПрдо: System.Reflection.MethodBase.GetCurrentMethod |

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:

  • рдореЗрдВ рдЧреБрдг рдХреЗ рд╕рднреА рд╕рдВрджрд░реНрдн рдХреА рдЬрдЧрд╣ System.Type рдореЗрдВ рдЗрд╕реА рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде System.TypeInfo , рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз GetTypeInfo(Type) рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ред
  • System.SerializableAttribute рд╕рднреА рд╕рдВрджрд░реНрдн рд╣рдЯрд╛ рджреЗрдВред
  • System.Runtime.Serialization.SerializationInfo рд╕рднреА рд╕рдВрджрд░реНрдн рд╣рдЯрд╛рдПрдВ (рд╕рдВрднрд╡рддрдГ рдХреЗрд╡рд▓ _exception рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
  • System.Net.Mail.MailAddress рд╕рднреА рд╕рдВрджрд░реНрдн рд╣рдЯрд╛ рджреЗрдВред
  • System.Reflection.MemberInfo.ReflectedType рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рднреА рд╕рдВрджрд░реНрдн рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд╛рд╡рд░реНрддрд┐рдд рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдмрджрд▓реЗрдВ System.Reflection.PropertyInfo.GetSetMethod рдХреЗ рд╕рд╛рде рд╕рдВрдкрддреНрддрд┐ System.Reflection.PropertyInfo.SetMethod рд╕рдВрдкрддреНрддрд┐ рдмрдЬрд╛рдпред

рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкрд╣рд▓рд╛ рдкрд╛рд╕ рд╣реИ рдФрд░ рдЪреАрдЬреЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ CoreCLR рдЕрднреА рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрдВрджрд╛рдЬрд╛ рд╣реЛ рдЧрдпрд╛ рдХрд┐ AutoFixture рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд╛рд╣, рдзрдиреНрдпрд╡рд╛рдж, @ecampidoglio , рдЗрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: +1:

рдХреБрдЫ рдЕрд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░ (рдЬреИрд╕реЗ MailAddress ) рд╣рдо рдПрдХ рдРрдб-рдСрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдореЗрд░реЗ рдорди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╕реНрдХрд░рдг 4 рдХреЗ рд▓рд┐рдП _Ploeh.AutoFixture_ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ ред

PropertyInfo.GetSetMethod рдХреЛ PropertyInfo.SetMethod рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЕрдЪреНрдЫрд╛ рд╣реИред AFAICT, рдпрд╣ рдХреЗрд╡рд▓ .NET 4.5+ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ _v4_ рд╢рд╛рдЦрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА .NET 4.5 рдкрд░ рд╣реИред

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

@chaitanyagurrapu , рд╢рд╛рдпрдж рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВред

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

рдЗрд╕ рд╕рдордп, рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рдХреМрд╢рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЬреЛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдпрд╣рд╛рдВ рдпрд╛ рд╕рдорд░реНрдкрд┐рдд рдЬреАрдердм рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ: +1:

@lbargaoanu рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ: +1: рдпрд╛рдж рд░рдЦреЗрдВ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЗрд╕реЗ рдЫреЛрдЯрд╛ рд░рдЦреЗрдВ ред

рдореИрдВ MailAddressGenerator рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ v4 рд╢рд╛рдЦрд╛ рдореЗрдВ рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрдлрд┐рдХреНрд╕реНрдЪрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдкреНрд░рдХрд╛рд░ рднреА рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдм рддрдХ рд╕рд╢рд░реНрдд рд╕рдВрдХрд▓рди рд╕реЗ рдкрд░рд╣реЗрдЬ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рд╣рдореЗрд╢рд╛ рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдЪреАрдЬреЗрдВ рд╣реЛрдВрдЧреАред

рдпрд╣ рдХрд╛рдо рдореЗрдВ рд╣реИ ред рд▓реЗрдХрд┐рди рдЗрд╕ рдмреАрдЪ...

рдЖрдЧрд╛рдореА рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП
https://blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core/

рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ! рдХреНрдпрд╛ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рднреА рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ? (рдореИрдВрдиреЗ _library_ рдХреА рдЦреЛрдЬ рдХреА рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛...)

:) рдпрд╣ рд╕рдм рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреЛрд╕реНрдЯ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдВрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ AutoFixture рдХреЛ CoreCLR рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рдФрд░ рдЬрд╣рд╛рдБ рдЬрд╝рд░реВрд░рдд рд╣реЛ рд╡рд╣рд╛рдБ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдБред рд▓реВрд╕рд┐рдпрди рдмрд░рдЧрд╛рдУрдиреБ (#511, рдФрд░ #513) рдХреЗ рдкрд┐рдЫрд▓реЗ рдкреАрдЖрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХреБрдЫ рдЕрдирд╕реБрд▓рдЭреА рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рдмрд╛рд╕реА рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдЧреЗрдВрдж рд▓реБрдврд╝рдХрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рдереА, рдФрд░ рдХреБрдЫ рд╡рд┐рд╡рд░рдгреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ рдЬреЛ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рд░реЛрдХ рд░рд╣реЗ рдереЗред рддреЛ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреБрдЫ рдкреНрд░рд╢реНрди рдЬреЛ рдореИрдВрдиреЗ рдЗрдзрд░-рдЙрдзрд░ рддреИрд░рддреЗ рд╣реБрдП рджреЗрдЦреЗ рд╣реИрдВ, рдпрд╛ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрд╡рдпрдВ рд╣реИрдВ:

  • рдХреНрдпрд╛ рдСрдЯреЛрдлрд┐рдХреНрдЪрд░ рдХреЛ рдкреАрд╕реАрдПрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рд╕рд╛рдЭрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддрд░рд╣ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
  • рдХрд┐рди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд░реВрд░рдд рд╣реИ, рдпрд╛ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рд╣реИрдВ? (.NET, CoreCLR, UWP?)
  • рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рд╢рд░реНрдд рд╕рдВрдХрд▓рди рдЕрд╡рд╛рдВрдЫрд┐рдд рд╣реИрдВ?

@ploeh рдореИрдВ рдЫрд╡рд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрди рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреБрдЫ рдЗрдирдкреБрдЯ рд╣реЛред @lbargaoanu рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреБрдЫ рдЗрдирдкреБрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕реВрддреНрд░ рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рднреВрд▓ рдЧрдпрд╛ рд╣реВрдБ; рдХреГрдкрдпрд╛ рдореЗрд░реА рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ: рдкреНрд▓рд╛рд╡рд┐рдд:

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

рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ _v4_ рд╢рд╛рдЦрд╛ рдореЗрдВ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред

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

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

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

AFAICT, рд╣рдореЗрдВ netstandard1.X рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдХрд┐ рдПрдкреАрдЖрдИ рдХрд╛ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЪрд▓реЗрдЧрд╛ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдиреЗрдЯрдХреЛрд░ рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдиреЗрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рд╣рд┐рдд)ред

рджреЗрдЦреЗрдВ https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдЪреНрдЪ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдПрдкреАрдЖрдИ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реЛрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрд╛рд░реА рд░рдЦрдирд╛) рдпрд╣ рд╕рдордЭрдХрд░ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕ рдПрдХреНрд╕ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП netstandard1.X ред

рдЙрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдбрд░рд╛рддрд╛ рд╣реИ:

рд╣рдо .NET рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдпреЛрдЬрдирд╛рдПрдБ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
-- https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md

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

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

рдореИрдВ [рдкреБрдирдГ] рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ... (рдЕрд╕реНрд╡реАрдХрд░рдг: рдореИрдВ рдЕрднреА рднреА рдпрд╣ рд╕рд╛рдорд╛рди рднреА рд╕реАрдЦ рд░рд╣рд╛ рд╣реВрдВ)

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

рдореЗрд░реА рд╕рдордЭ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдкреАрдЖрдИ рдХрд╛ netstandard1.0 рд╕реЗрдЯ рдХрд╛рдлреА рдкреБрд░рд╛рдирд╛ рдФрд░ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд╣реИред рдЗрд╕рдореЗрдВ рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдЬреИрд╕реЗ:

  • System.Linq.Parallel ( netstandard1.1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)
  • System.Console ( netstandard1.3 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)
  • System.Collections.Concurrent ( netstandard1.1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)
  • System.ComponentModel.Annotations ( netstandard1.1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)
  • System.Collections.Specialized ( netstandard1.3 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)

рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрдЯреЛрдлрд┐рдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП netstandard1.0 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣рд╛рдВ @ecampidoglio рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдПрдХ рдмреЗрд╣рддрд░ рд░рдгрдиреАрддрд┐ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣рд╛рдБ .NET API рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЙрдкрдХрд░рдг рд░реЗрдкреЛ рд╣реИ рдФрд░ рдпрд╣рд╛рдБ рд╡реЗрдм рд╕рд╛рдЗрдЯ рд╣реИ http://dotnetstatus.azurewebsites.net

рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЯрд┐рдкреНрдкрдгреА рд╕реНрдкреИрдо рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЕрднреА рд░реБрдХреВрдВрдЧрд╛ :)

FYI рдХрд░реЗрдВ рдореИрдВрдиреЗ v4 4a7d415 рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд Ploeh.AutoFixture.dll рдкрд░ рдирд╡реАрдирддрдо рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪрд▓рд╛рдпрд╛ рдФрд░ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ:

рд╕рднрд╛.NET рдХреЛрд░, рд╕рдВрд╕реНрдХрд░рдг=v5.0.NET рдлреНрд░реЗрдорд╡рд░реНрдХ, рд╕рдВрд╕реНрдХрд░рдг = v4.6.2.NETрдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рд╕рдВрд╕реНрдХрд░рдг=v5.0
Ploeh.AutoFixture, рд╕рдВрд╕реНрдХрд░рдг=3.45.2.0, рд╕рдВрд╕реНрдХреГрддрд┐=рддрдЯрд╕реНрде, PublicKeyToken=null (.NETFramework, рд╕рдВрд╕реНрдХрд░рдг=v4.5)98.56%100.00%98.37%

рдпрд╣рд╛рдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХреА рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ:
screen shot 2016-05-11 at 11 36 16

рдкреВрд░рд╛ рдЖрдЙрдЯрдкреБрдЯ рдпрд╣рд╛рдБ рд╣реИ ред

@ploeh Asp.Net Core рдХреЗ рдХрдИ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЙрдореНрдкреЛрдиреЗрдЯреНрд╕ рдХреЛ рдиреНрдпреВрдирддрдо netstandard1.3 рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ EntityFrameworkCore (1.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдФрд░ Mvc (1.6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдпрджрд┐ Autofixture рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЖрдзрд╛рд░ рд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдкрд░ рд╣реЛрдЧрд╛ред

рдиреЗрдЯ рдХреЛрд░ рд╕рдорд░реНрдерди рдХрдм рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдХреЛрдИ рд╕рдордпрд╕реАрдорд╛?

рдореИрдВ v4 рд╢рд╛рдЦрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ .NET рдХреЛрд░ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдореИрдВрдиреЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред рдпрджрд┐ рдЖрдк рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рджреЗрдЦреЗрдВред

FWIW, рдпрд╣рд╛рдБ AutoFixture/AutoFixture v4 рдФрд░ uhaciogullari/AutoFixture net-core рдХреЗ рдмреАрдЪ рддреБрд▓рдирд╛ рд╣реИ ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ

рд╡реИрд╕реЗ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рд╕реАрдзрд╛ рдирд╣реАрдВ рд╣реИред Project.json рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдЕрднреА рдирд┐рдпрдорд┐рдд csproj рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рд╣рдо рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ project.json рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдХреБрдЫ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВред рдкрддрд╛ рдирд╣реАрдВ рдЕрдЧрд░ рд╡реЗ .NET рдХреЛрд░ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА рд╣реИ рдХрд┐ рд╡реЗ рдЬрд▓реНрдж рд╣реА project.json рд╕реЗ рджреВрд░ рдЪрд▓реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╡реЗ рд╡рд╛рдкрд╕ csproj рдкрд░ рдЪрд▓реЗ рдЬрд╛рдПрдВрдЧреЗред рд╡реЗ рдПрдХ рдЖрд╕рд╛рди рдкреНрд░рд╡рд╛рд╕ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдЕрд╕реНрдерд╛рдпреА рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕рдордп рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╣ рд╕рдм рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдореИрдВ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛ рд╕реЗ рдПрдХ рдкреИрдХреЗрдЬ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рдерд╛ рд▓реЗрдХрд┐рди v4 рдХрд╛рдо рдкреНрд░рдЧрддрд┐ рдкрд░ рд▓рдЧрддрд╛ рд╣реИред

рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ: #712

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

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рддрдХ .net рдХреЛрд░ рдЯреВрд▓рд┐рдВрдЧ RTM рд╕реНрдерд┐рддрд┐ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреА, рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╕рдордЭрджрд╛рд░реА рдереАред рдЕрджреНрдпрддрди csproj рдЯреВрд▓рд┐рдВрдЧ рдХреЛ VS2015 рдореЗрдВ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдХреЗрд╡рд▓ VS2017 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рджреЗрдЦреЗрдВ https://twitter.com/TheCodeJunkie/status/822048014172880900

@hoetz рдЖрдк рдЕрднреА рднреА vs2017 рд╕рдореБрджрд╛рдп рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

AitoFixture рдХреЗ рдмрд┐рдирд╛ .NET рдорд╛рдирдХ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреБрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ...

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

рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдБред рдЕрднреА рдореИрдВ рдХреЗрд╡рд▓ Src\AutoFixture.sln рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдореЗрд░реА рд░рдгрдиреАрддрд┐ Src\AutoFixture\AutoFixture.csproj рдХреЛ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рд░реВрдк (VS 2017) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рд╣реИ рддрд╛рдХрд┐ рдпрд╣ .NET Framework рдФрд░ .NET рдорд╛рдирдХ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХреЗред

рдореИрдВрдиреЗ .NET рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдпрд╛ рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдХреНрд╖реНрдп .NET рдорд╛рдирдХ 1.5 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╕рдВрд▓рдЧреНрди рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ)ред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ .NET рдХреЛрд░ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

AutoFixtureNetPortabilityTest.zip

рдЕрд░реЗ @Kralizek - рдмрд╕ FYI рдХрд░реЗрдВ - рдореБрдЭреЗ #712 рдореЗрдВ netstandard1.3 рд╕рд╛рде рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА

@Kralizek рдореЗрд░реА рдЧрд▓рддреА, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ netstandard1.3 рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ netstandard1.5 рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖ

рд╡рд╣рд╛рдБ рд▓рдЧрднрдЧред .NET Framework рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд╣рд░реЗ рд╣реИрдВред .NET рдорд╛рдирдХ рдореЗрдВ рдмрд┐рд▓реНрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рд▓ рд╣реИред :рдбреА

рдореИрдВ рдХреЗрд╡рд▓ рдЗрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдорд┐рд▓рд╛:

рдЬрдирд░реЗрдЯрд░ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ
рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдорд▓рд╛, MailAddressGenerator , рдХреНрдпреЛрдВрдХрд┐ System.Net.Mail.MailAddress .NET рдорд╛рдирдХ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рд╕рдорд╛рдзрд╛рди: #if NET40 ... #endif . рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рдХреЛ "рд╣рдЯрд╛" рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдХреНрд░рдордмрджреНрдзрддрд╛
SerializableAttribute, SerializationInfo рдФрд░ StreamingContext .NET рдорд╛рдирдХ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдЕрдкрд╡рд╛рдж рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрди рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдВрдиреЗ рд╕рднреА рдЕрдкрд╡рд╛рджреЛрдВ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рдЙрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред

рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд╛рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ
.NET рдорд╛рдирдХ рдореЗрдВ Type рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИред рд╕рдм рдХреБрдЫ рдПрдХ рдЯрд╛рдЗрдкрдЗрдиреНрдлреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдЧреБрдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ .NET Framework рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди:
рдореИрдВрдиреЗ рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рд╣реИ рдЬреЛ рд╕рдорд╛рди рдЯрд╛рдЗрдк рдСрдмреНрдЬреЗрдХреНрдЯ public static Type GetTypeInfo(this Type type) => type; рдЖрдЧреЗ рдмрдврд╝рд╛рддреА рд╣реИ рдФрд░ рдЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рдХреЛ рдХреЗрд╡рд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ .NET Framework рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреА рд╣реИред рдЗрд╕ рдЯреНрд░рд┐рдХ рдиреЗ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдЫреВрддрд╛ рдЫреЛрдбрд╝рдХрд░ рдХрдИ рдЕрд╕рдВрдЧрддрддрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдиреЛрдЯ: рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХреЛ internal рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ
рдареАрдХ рд╣реИ, рдпрд╣ рдПрдХ рдХрдард┐рди рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рдореИрдВрдиреЗ рдХреНрд▓рд╛рд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рддреБрд░рдВрдд рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд░реАрд╢реЗрд░реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдлрд╝рд╛рдЗрд▓ TerminatingWithPathSpecimenBuilder рдФрд░ рд▓рд╛рдЗрди var thisAssembly = MethodBase.GetCurrentMethod().DeclaringType.Assembly; ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХрд┐ typeof(TerminatingWithPathSpecimenBuilder).DeclaringType[.GetTypeInfo()].Assembly рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред (рдореИрдВрдиреЗ рдирдХрд▓реА рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЛрд╖реНрдардХ рдореЗрдВ рд░рдЦрд╛ рд╣реИ)ред рдпрджрд┐ рдореЗрд░реА рдзрд╛рд░рдгрд╛ рд╕рд╣реА рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рдиреЗ рдФрд░ рдЗрд╕реЗ рддреЛрдбрд╝рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП sealed рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред

рдмрд╣рд░рд╣рд╛рд▓, рдореИрдВ рдЖрдкрдХреЛ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рддрд╛ рд╣реВрдБред

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net40;netstandard1.5</TargetFrameworks>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
  </PropertyGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net40' ">
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.ComponentModel.DataAnnotations" />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.5' ">
    <PackageReference Include="System.ComponentModel.Annotations" Version="4.1.0" />
  </ItemGroup>
</Project>

рд╣рд╛рдБ, рдпрд╣ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИред

@Kralizek рдХреНрдпрд╛ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╣рдо v4 рд╢рд╛рдЦрд╛ рдореЗрдВ >= net45 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@adamchester рдирд╣реАрдВрдВ ... рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд▓реЗрдХрд┐рди рдореИрдВ рд▓рдХреНрд╖реНрдп рдврд╛рдВрдЪреЗ рдХреЛ рдмрджрд▓ рджреВрдВрдЧрд╛ред рд╕рд░ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ System.Threading.Thread рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдЗрд╕рдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕реНрддрд░ рдЦреЛрд▓ рджрд┐рдпрд╛ ... рдЕрдЪреНрдЫрд╛: рдкреА

.NET рдорд╛рдирдХ 2.0 рдмрд╣реБрдд рдЕрдзрд┐рдХ рдПрдкреАрдЖрдИ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢рд╛рдпрдж рдпрд╣ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИ?

рдирд╣реАрдВ рдпрд╣ рдирд╣реАрдВред .NET рдорд╛рдирдХ 2.0 Q3 2017 рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рд╣рдо .NET рдорд╛рдирдХ 1.5 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдз рджреВрд░ рд╣реИрдВ, рд╣рдореЗрдВ 2.0 рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреНрдпреЛрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рд░рдирдЯрд╛рдЗрдо рдкрд░ рдореЗрд▓ рд╕рдВрджреЗрд╢ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 2.0 рдЬреНрдпрд╛рджрд╛рддрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ 4.6 рдХрд╛ рдПрдХ рд╢рд┐рдо рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ NotSupportedException рдХреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рдлреЗрдВрдХрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@Kralizek рдореЗрд▓рд╛ рдХрд╛рдлреАред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдСрдЯреЛрдлрд┐рдХреНрд╕реНрдЯрд░ рдХреЛ рддреЗрдЬреА рд╕реЗ рд░рд┐рд▓реАрдЬ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди рдерд╛ред

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

рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ .NET рдорд╛рдирдХ рдкрд░ AutoFixture рд╣реЛрдиреЗ рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, IMHOред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдФрд░ рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рдорджрдж рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВ, рдпрд╛ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд░реНрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред

@Kralizek TypeInfo рд╕рд╛рдорд╛рди рднреА .NET 4.5 рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рдХрдИ .NET рдХреЛрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ "рдкреИрдХреЗрдЬ рдСрдЯреЛрдлрд┐рдХреНрдЪрд░ 3.50.5 netcoreapp1.1 (.NETCoreApp,Version=v1.1) рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ" рджреНрд╡рд╛рд░рд╛ рдХрд╛рдЯ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВ ".рдиреЗрдЯ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрдлрд┐рдХреНрд╕реНрдЪрд░ рдХреА рд╕реНрдерд┐рддрд┐" рдХреЗ рд▓рд┐рдП рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд╢рд╛ рджреЗрддрд╛ рд╣реИ (рдФрд░ .net рдХреЛрд░ 2.0 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд░рдЯреАрдПрдо рдФрд░ рд▓рдВрдмрд┐рдд рд░рд┐рд▓реАрдЬ рд╣реИ ..) .

рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХреНрдпрд╛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ? (рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж)

рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк #773 рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ рдЬрдирд╕рдВрдкрд░реНрдХ AutoFixture рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реА рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 9 рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

.NET рдХреЛрд░ рд╕рдорд░реНрдерди v4 рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЖрдк рдпрд╣рд╛рдВ рдкреВрд░рд╛ рджрд╛рдпрд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рд╕реЗ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред

рдЗрд╕ рдмреАрдЪ, рд╣рдо рджреЗрд╡ рдиреБрдЧреЗрдЯ рдлрд╝реАрдб (#762) рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рд╢реБрд░реБрдЖрддреА рдЙрддреНрдкрд╛рдж рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХреЗрдВ

@zvirja рд╡рд┐рд╕реНрддреГрдд рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдЖрдПрдЧрд╛ред рдореБрдЭреЗ рд╢реБрд░реБрдЖрддреА рдЙрддреНрдкрд╛рдж рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

@zvirja рддреЛ рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - .NET рдХреЛрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ/рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди (рдЕрд╕реНрдерд╛рдпреА) рджреГрд╖реНрдЯрд┐рдХреЛрдг AutoFixture рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП .NET 4.7 рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВред рдмрд╛рдж рдореЗрдВ .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП?

рдХреНрдпрд╛ рдпрд╣ рдлрд┐рд▓рд╣рд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ? (рдЬрдм рддрдХ рдореИрдВ рдЬреЛ рдРрдк рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ .NET рдХреЛрд░ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд .NET 4.7 рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ)ред

@andersborum рдореИрдВрдиреЗ рдЕрд╕реНрдерд╛рдпреА рдХрд╛рдордХрд╛рдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ v3 рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА API (рдкреИрдХреЗрдЬ, NuGet рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд) .NET рдорд╛рдирдХ 2.0 рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ (.NET рдорд╛рдирдХ рдХреА рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ v3 рдФрд░ .Net Core рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рдо рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХреЗрдВ

рдмрд╕ рд╕рднреА рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - AutoFixture PR (#773) рдХреЗ рд▓рд┐рдП .Net рдорд╛рдирдХ рд╕рдорд░реНрдерди рдХреЛ v4 рд╢рд╛рдЦрд╛ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рд╣рдорд╛рд░реЗ рдирд┐рдЬреА рдлрд╝реАрдб рд╕реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

v4 рдХреЛ nuget.org рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЕрд▓реНрдлрд╝рд╛ рд╕рдВрд╕реНрдХрд░рдг рднреА? рдЕрдм рддрдХ .netstandard рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдСрдЯреЛрдлрд┐рдХреНрд╕реНрдЪрд░ рд╕реЗ рддреБрд▓рдиреАрдп рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдХреНрдпрд╛ v4 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреА рддрд╛рд░реАрдЦ рдкрд╣рд▓реЗ рд╣реА рддрдп рдХрд░ рд▓реА рдЧрдИ рд╣реИ?

@RomanKernSW рдЗрд╕ рд╕рдордп рдирд╣реАрдВ - рд╣рдордиреЗ рдЕрднреА рддрдХ рдЖрдзреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рднреА рдорд╛рдЗрдЧреНрд░реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рдЬреИрд╕реЗ xUnit, NUnit, NSubstitute рд╕рдорд░реНрдерди), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд╛рдо рд╕реНрдерд╛рди рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ _before_ рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЬрд╛рд░реА рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░рд┐рд▓реАрдЬ рдХреЗ рдмреАрдЪ рдПрдХ рдмрдбрд╝рд╛ рдмреНрд░реЗрдХ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реА рдУрд░, рдореИрдВ рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдмрд╛рдж рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд▓рдЧрд╛рддрд╛рд░ master рдХреЛ v4 рдореЗрдВ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рдХрд░рдирд╛ рдПрдХ рдирд░рдХ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдирд┐рдЬреА рдлрд╝реАрдб рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдЖрдк NuGet.config рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝реАрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЗрд╕рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдПрдЪрдПрдо рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ nuget.config рдХрд╛ рдЙрдкрдпреЛрдЧ nuget рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ (.Net Core 2 - VSO рдореЗрдВ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛рд░реНрдп)ред рдЕрднреА, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ nuget.org рдХреЗ рд╕рд╛рде рдмрд┐рдирд╛ рдХрд┐рд╕реА nuget.config рдлрд╝рд╛рдЗрд▓ рдХреЗ рдПрдХ рдирд┐рдЬреА рдлрд╝реАрдб (VSO) рд╣реИред рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдЪрд╛рд╣рд┐рдП ...

.Net Standard 2.0 рдореЗрдВ .Net Framework NuGets рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрддрддрд╛ рдореЛрдб рд╣реИред
рдореИрдВрдиреЗ AutoFixture 3.50.x рдХреЗ рд╕рд╛рде .Net Core рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ
рджреВрд░ред

@roarwrecker рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдорддрд▓рдм рдЬрдм рддрдХ рд╣рдо NuGet рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд░реНрдерди рдирд╣реАрдВ рджреЗрддреЗ: рдкрд▓рдХ:

@roarwrecker рдзрдиреНрдпрд╡рд╛рдж ... рдпрд╣ .netstandard 1.6 рдкрд░ рдореБрджреНрджрд╛ рдирд╣реАрдВ рдерд╛ред рдореИрдВ рдирдЧреЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рдХрднреА рднреА рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ

рдЕрд░реЗ рджреЛрд╕реНрддреЛрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ .NetCore рдХрд╛рдо рдХрд┐рддрдирд╛ рдЖрдЧреЗ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ NuGet рдкрд░ рдЕрд▓реНрдлрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

@selmendorfFrontline рдпрд╣рд╛рдБ рд╕реЗ рдЙрддреНрддрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд░рд╣рд╛

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

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

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

рдХреГрдкрдпрд╛ рдЗрд╕ рдмреАрдЪ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдлрд╝реАрдб рд╕реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдЕрдкрдиреЗ Nuget.config рдХреЛ рдЯреНрдпреВрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

#857 рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рд╣рдорд╛рд░реА рдЕрдВрддрд┐рдо .NET рд╕рдВрдЧрддрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧреА:

| рдЙрддреНрдкрд╛рдж | .NET рдлреНрд░реЗрдорд╡рд░реНрдХ | .NET рдорд╛рдирдХ |
| ------------------ | ------------------------ | ------------------------ |
| рдСрдЯреЛрдлрд┐рдХреНрдЪрд░ | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 1.5 |
| AutoFixture.xUnit | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдорд╛рдЗрдирд╕_рд╕рд╛рдЗрди: |
| AutoFixture.xUnit2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 1.5 |
| AutoFixture.NUnit2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдорд╛рдЗрдирд╕_рд╕рд╛рдЗрди: |
| AutoFixture.NUnit3 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 1.5 |
| AutoFakeItEasy | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 1.6 |
| рдСрдЯреЛрдлреЛрдХ | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдорд╛рдЗрдирд╕_рд╕рд╛рдЗрди: |
| рдСрдЯреЛрдореЛрдХ | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 1.5 |
| AutoNSubstitute | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 1.5 |
| AutoRhinoMock | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдорд╛рдЗрдирд╕_рд╕рд╛рдЗрди: |
| рдореБрд╣рд╛рд╡рд░реЗ | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 2.0 |
| рдореБрд╣рд╛рд╡рд░реЗ.FsрдЪреЗрдХ | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдорд╛рдЗрдирд╕_рд╕рд╛рдЗрди: |
| рдЕрд░реНрдердкреВрд░реНрдг рддреБрд▓рдирд╛ | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 4.5.2 | :рднрд╛рд░реА_рдЪреЗрдХ_рдЪрд┐рд╣реНрди: 1.5 |

Idioms.FsCheck рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЕрд╕рдорд░реНрдерд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ .Net Standard рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ (рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИрдВ)ред рдореИрдВрдиреЗ Idioms.FsCheck рдХреЛ .NET 452 рдФрд░ .NET Standard 2.0 рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдл # рдПрд╕рдбреАрдХреЗ рдЕрднреА рднреА рдХрд╛рдлреА рдореЛрдЯрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдирдИ рд░рд┐рд▓реАрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред TargetFrameworks рдиреЛрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдВрдХрд▓рди рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЛрдб рдмрд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рддрдХ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рджреВрд╕рд░рд╛ рд╡рд┐рдЬрди рди рд╣реЛ, рдореИрдВ рдЗрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд░рд┐рд▓реАрдЬ рдХреЗ рдХрд┐рддрдиреЗ рдХрд░реАрдм рд╣реИрдВ рдФрд░ рдХрд┐рддрдирд╛ рдкреАрдЫреЗ рд╣реИ

рдЬрд╛рдУ рдЬрд╛рдУрдВ рдЬрд╛рдУ!

рдореИрдВрдиреЗ Idioms.FsCheck рдХреЛ .NET 452 рдФрд░ .NET Standard 2.0 рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрд╕ рдкрд░ рдПрдХ рдирдП рдПрдл # рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдЖрдИрдЖрдИрдЖрд░рд╕реА, рдпрд╣ рдПрдл # 3.1 рдкрд░ рд╣реИ рдФрд░ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо @zvirjaред рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо v4 рдЖрдЙрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рд╣рдо рдЬрд┐рддрдиреЗ рдХрд░реАрдм рдЖрддреЗ рд╣реИрдВ, рдЙрддрдирд╛ рд╣реА рдЙрддреНрд╕рд╛рд╣рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ :)

рдХрд╛рд╢ рдореИрдВ рддреБрдореНрд╣реЗрдВ рдПрдХ рдмрд┐рдпрд░ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддрд╛ :)

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрд╕ рдкрд░ рдПрдХ рдирдП рдПрдл # рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдЖрдИрдЖрдИрдЖрд░рд╕реА, рдпрд╣ рдПрдл # 3.1 рдкрд░ рд╣реИ рдФрд░ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@moodmosaic рд╣рд╛рдБред рдпрджрд┐ рдЖрдк FsCheck 2.9.0 рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ FSharp.Core (>= 4.1.17) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ рд╕рдорд╕реНрдпрд╛ рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рд╣реИред рдЕрдЧрд░ рдореИрдВ рджреЛрдиреЛрдВ рдврд╛рдВрдЪреЗ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рд╡реА.рдПрд╕. рдореЗрдВ рд╕рдорд╛рдзрд╛рди рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛:

<PropertyGroup>
  <TargetFrameworks>net452;netstandard2.0</TargetFrameworks>
  .....
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="FsCheck" Version="[0.9.2,3.0.0)" Condition=" '$(TargetFramework)'=='net452' " />
  <PackageReference Include="FSharp.Core" Version="3.1.2" Condition=" '$(TargetFramework)'=='net452' " />

  <PackageReference Include="FsCheck" Version="[2.9.0,3.0.0)" Condition=" '$(TargetFramework)'=='netstandard2.0' " />
  <PackageReference Include="FSharp.Core" Version="4.1.17" Condition=" '$(TargetFramework)'=='netstandard2.0' " />

  <PackageReference Include="FSharp.NET.Sdk" Version="1.0.*" PrivateAssets="All" />
</ItemGroup>

рд╡реАрдПрд╕ рдореЗрдВ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ:
image

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ - рдореБрджреНрджрд╛ рдПрдл # рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдХрд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмреЗрд╣рддрд░ рд╕рдордп рддрдХ FsCheck рджреНрд╡рд╛рд░рд╛ .NET рдХреЛрд░ рд╕рдорд░реНрдерди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

@Kralizek рдХреГрдкрдпрд╛ рдЙрддреНрддрд░ рдХреЛ рдХреБрдЫ рдЙрддреНрддрд░ рдКрдкрд░ рджреЗрдЦреЗрдВ ред

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

JFYI: рдореИрдВрдиреЗ NuGet рдХреЗ рд▓рд┐рдП v4 rc1

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕