.NET рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдСрдЯреЛрдореЗрд╢рди - рднрд╛рдЧ 2



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

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

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


рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдХрд╛рд░реНрдп рд▓реЗрдЦрди


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

<regasm assembly="myAssembly.dll" /> 

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

рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдПрдХ .NET рдХреНрд▓рд╛рд╕ рд╣реИ, рдЬреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ NAnt.Core.Task рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ (рд▓рд╛рдЗрдмреНрд░реЗрд░реА NAnt.Core.dll )ред рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЦреЛрд▓реЗрдВ, рдПрдХ рдирдпрд╛ Class Library рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, NAnt.Core.dll рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрдирд╛рдПрдВ:

 [TaskName("my-task")] public class MyTask : NAnt.Core.Task { protected override void ExecuteTask() { // TODO:     System.IO.File.WriteAllText("file.txt", "Hello, world!"); } } 

NAnt.Core.Task рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рднреА рд╡рдВрд╢рдЬ рдореЗрдВ рдЕрдореВрд░реНрдд void ExecuteTask() рд╡рд┐рдзрд┐ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рдЙрд╕ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред XML рдЯреИрдЧ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЖрдкрдХреЛ TaskName рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╡рд░реНрдЧ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЧ рдореЗрдВ рдЧреБрдг рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ TaskAttribute рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред рд░рди рд╕рдордп рдореЗрдВ, рдЗрди рдЧреБрдгреЛрдВ рдореЗрдВ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрде рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ string рдмрдЬрд╛рдп System.IO.FileInfo рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

 [TaskAttribute("path", Required = true)] public string Path { get; set; } 

рд▓реЙрдЧ рдХреЛ рд╕рдВрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ Log рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

 Log(Level.Warning, "  "); 


рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдбреАрдмрдЧ рдХрд░рдирд╛


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

 <loadtasks assembly="MyLibrary.dll" /> <my-task path="D:\temp" /> 

рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ System.Diagnostics.Debugger.Launch() рдореЗрдВ рдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдореЗрдВ NAnt рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП Visual Studio рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдиреНрдп


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

рдПрдХ рдирдпрд╛ MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдирд╛
 <createDatabase database="dbname" instance="." integratedSecurity="true" /> 

MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдмреИрдХрдЕрдк
 <!-- integrated security --> <backupDatabase database="dbname" instance="." integratedSecurity="true" backupFileName="d:\test.bak" /> <!-- user & password --> <backupDatabase database="dbname" instance="." user="sa" password="123" backupFileName="d:\test.bak" /> 

MSSQL рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП db_owner рднреВрдорд┐рдХрд╛ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИ; рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╡реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ)
 <addDatabaseUsers database="dbname" instance="." integratedSecurity="true"> <user login="IIS APPPOOL\test" isWindowsUser="true" /> <user login="test1" password="123" /> <user login="test2" password="qwert" /> </addDatabaseUsers> 

JS рдФрд░ CSS рдорд┐рдирд┐рдлрд┐рдХреЗрд╢рди ( .NET рдХреЗ рд▓рд┐рдП YUI рдХрдВрдкреНрд░реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ):
 <minify-js obfuscate-js="true" with-line-breaks="true" disable-optimizations="true"> <files> <include name="test2.js" /> <include name="test.js" /> </files> </minify-js> <minify-css compression-type="hybrid" with-line-breaks="true"> <files> <include name="*.css" /> </files> </minify-css> 

.LESS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди ( DotLess рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреБрдХреНрдд ):
 <compile-less file="D:\projects\ecm7milk\milk.less" result="D:\milk.min.css" /> 

IIS рдореЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдирд┐рд░реНрдорд╛рдг
 <createIISWebSite websiteName="xxx3.ru" fileSystemPath="d:\xxx3.ru" appPool="xxx3.ru"> <bindings> <add host="localhost" port="4898" protocol="http" /> <add host="xxx3.ru" /> </bindings> </createIISWebSite> 

IIS рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдирд╛
 <createIISApplication websiteName="xxx3.ru" virtualPath="/admin" fileSystemPath="d:/admin" /> <createIISDirectory websiteName="xxx3.ru" applicationVirtualPath="/admin" virtualPath="/images" fileSystemPath="d:/images" /> 

XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ XDT рд░реВрдкрд╛рдВрддрд░рдг
 <xdt target="test.xml"> <transformation> <moo1 xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <moo2 xdt:Transform="Insert">123</moo2> <rewrite xdt:Transform="Insert"> <a1>456!</a1> </rewrite> </moo1> </transformation> </xdt> 

XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ XDT рдкрд░рд┐рд╡рд░реНрддрди (рдкрд░рд┐рд╡рд░реНрддрди рдкреИрд░рд╛рдореАрдЯрд░ рдЕрд▓рдЧ)
 <!--    - --> <xdt target="test.xml"> <transformation refid="mimimi" /> </xdt> ... <raw-xml id="mimimi"> <moo1 xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <moo2 xdt:Transform="Insert">123!</moo2> <rewrite xdt:Transform="Insert" xxx2="${test.property}" aaa="bbbb"> <a1 xxx1="${test.property}">456!</a1> </rewrite> </moo1> </raw-xml> <!--    --> <xdt target="test.xml"> <transformation file="transform.xml" /> </xdt> 
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ NAnt рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдВрджрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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


All Articles