Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã³ãã¬ãŒãäœæè
ã¯ãå®çŸ©æžã¿ã®æ§é ãããããžã§ã¯ãããã¡ã€ã«ããŸãã¯ãã®ä»ã®ãªãœãŒã¹ãçæãããã«ãŒããªã³ã.NETãã³ãã¬ãŒããäœæããŸãã ãŠãŒã¶ãŒãdotnet new <shortName>ãå®è¡ãããšã.NET ãã³ãã¬ãŒã ãšã³ãžã³ã«ãã£ãŠãã³ãã¬ãŒããèªã¿åãããçŸåšã®ãã£ã¬ã¯ããªã«åºåãçæãããŸãã Visual Studioã® [æ°ãããããžã§ã¯ãã®äœæ] ãã€ã¢ãã°ã§ã¯ã.NET ãããžã§ã¯ã ãã³ãã¬ãŒãçšã®.NET ãã³ãã¬ãŒã ãšã³ãžã³ã䜿çšããããããCLI çšã«äœæãããã³ãã¬ãŒããVisual Studioã§æ©èœããŸãã
.NET SDK ã«ã¯ãã³ã³ãœãŒã« ã¢ããªãã¯ã©ã¹ ã©ã€ãã©ãªãASP.NET ãããžã§ã¯ããªã©ã®äžè¬çãªéå§ç¹çšã®çµã¿èŸŒã¿ãã³ãã¬ãŒããä»å±ããŠããŸãã ãããã®çµã¿èŸŒã¿ãã³ãã¬ãŒã以å€ã«ããç¬èªã®ãã³ãã¬ãŒããäœæããNuGet ããã±ãŒãžãšããŠé åžããããšãã§ããŸãã
ãã®èšäºã¯ããã³ãã¬ãŒãäœæè åãã®ãªãã¡ã¬ã³ã¹ã§ãã ãã³ãã¬ãŒãã®æ§é åãæ§æãé åžæ¹æ³ã«ã€ããŠèª¬æããŸãã ãã³ãã¬ãŒããäœæããŠããã±ãŒãžåããæé ã«ã€ããŠã¯ãã é¢é£ã³ã³ãã³ã ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ãã³ãã¬ãŒãã®çš®é¡
.NET ãã³ãã¬ãŒã ãšã³ãžã³ã§ã¯ãé ç®ãã³ãã¬ãŒãããããžã§ã¯ã ãã³ãã¬ãŒãããœãªã¥ãŒã·ã§ã³ ãã³ãã¬ãŒãã® 3 çš®é¡ã®ãã³ãã¬ãŒãããµããŒããããŠããŸãã
é ç®ãã³ãã¬ãŒã㯠ãã³ãŒã ãã¡ã€ã«ãæ§æãã¡ã€ã«ããã®ä»ã®ãªãœãŒã¹ãªã©ã® 1 ã€ä»¥äžã®ãã¡ã€ã«ãçæããŸãããããžã§ã¯ãå šäœã¯çæããŸããã ããšãã°ãé ç®ãã³ãã¬ãŒãã§ã¯ãäžé£ã®æ¡åŒµã¡ãœããã远å ããã¯ã©ã¹ ãã¡ã€ã«ããããŒã ã䜿çšããæšæºã¬ã€ã¢ãŠãã«åŸã JSON æ§æãã¡ã€ã«ãçæãããå ŽåããããŸãã é ç®ãã³ãã¬ãŒããäœæããæ¹æ³ã«ã€ããŠã¯ãã ãã¥ãŒããªã¢ã«: é ç®ãã³ãã¬ãŒããäœæããããåç §ããŠãã ããã
Projectãã³ãã¬ãŒãã¯ãå®å šãªprojectæ§é ãçæããŸãã ããšãã°ãçµã¿èŸŒã¿ã®ã³ã³ãœãŒã« ãããžã§ã¯ã ãã³ãã¬ãŒãã§ã¯ã
.csprojãã¡ã€ã«ãProgram.csãã¡ã€ã«ãããã³ãããžã§ã¯ããæ§æãããã®ä»ã®ãã¡ã€ã«ãçæãããŸãã åã ã®ãã¡ã€ã«ã§ã¯ãªãå®å šãªãããžã§ã¯ãã®éå§ç¹ããŠãŒã¶ãŒã«æäŸããå Žåã¯ããããžã§ã¯ã ãã³ãã¬ãŒããäœæããŸãã ãããžã§ã¯ã ãã³ãã¬ãŒããäœæããæ¹æ³ã«ã€ããŠã¯ãã ãã¥ãŒããªã¢ã«: ãããžã§ã¯ã ãã³ãã¬ãŒããäœæããããåç §ããŠãã ããããœãªã¥ãŒã·ã§ã³ ãã³ãã¬ãŒãã¯ã 1 ã€ä»¥äžã®ãããžã§ã¯ããå«ããœãªã¥ãŒã·ã§ã³ãçæããŸãã ããšãã°ããœãªã¥ãŒã·ã§ã³ ãã³ãã¬ãŒãã§ã¯ã1 ã€ã®ã¹ãããã§ãã¹ã ãããžã§ã¯ããšãã¢ã«ãªã£ã API ãããžã§ã¯ããäœæã§ããŸãã
ç¬èªã®ãã³ãã¬ãŒããäœæãããšãã¯ãtemplate.jsonæ§æãã¡ã€ã«ã® tags.type ãã£ãŒã«ãã䜿çšããŠãã®åã宣èšããŸãã æå¹ãªå€ã¯ã"project"ã"item"ãããã³ "solution"ã§ãã ãããã®å€ã䜿çšãããšããŠãŒã¶ãŒã¯ dotnet new search ãŸã㯠dotnet new listã§ãã³ãã¬ãŒããæ€çŽ¢ãããšãã«çµæããã£ã«ã¿ãŒåŠçã§ããŸãã
Tip
Projectãšãœãªã¥ãŒã·ã§ã³ ãã³ãã¬ãŒãã¯ãVisual Studio [æ°ããprojectã®äœæ] ãã€ã¢ãã°ã«è¡šç€ºãããŸããã[æ°ããã¢ã€ãã ã®è¿œå >] ãã€ã¢ãã°ã«ã¯ã¢ã€ãã ãã³ãã¬ãŒãã¯è¡šç€ºãããŸããã ãŠãŒã¶ãŒã¯ã dotnet new CLI ããé
ç®ãã³ãã¬ãŒãã«ã¢ã¯ã»ã¹ã§ããŸãã
ãã³ãã¬ãŒãæ§é
ãã³ãã¬ãŒãã¯ãã£ã¹ã¯äžã®ãã©ã«ããŒã§ããããã³ãã¬ãŒã ãœãŒã¹ ãã¡ã€ã«ãšç¹æ®ãª .template.config ãµããã©ã«ããŒã® 2 ã€ãå«ã¿ãŸãã ãŠãŒã¶ãŒã dotnet new <shortName>å®è¡ãããšããã³ãã¬ãŒã ãšã³ãžã³ã¯ãœãŒã¹ ãã¡ã€ã«ãåºåå Žæã«ã³ããŒãããã³ãã¬ãŒãã«å¯ŸããŠå®çŸ©ããæ§æãé©çšããŸãã
mytemplate/
âââ console.cs
âââ readme.txt
âââ .template.config/
âââ template.json
âââ icon.png
ãœãŒã¹ ãã¡ã€ã«ã«ã¯ãä»»æã®çš®é¡ã®ãã¡ã€ã«ãæå®ã§ããŸãã ãã³ãã¬ãŒã ãšã³ãžã³ã§ã¯ããœãŒã¹ ã³ãŒãã«ç¹å¥ãªããŒã¯ã³ãããŒã«ãŒãæ¿å
¥ããå¿
èŠã¯ãããŸããã as-isãã¡ã€ã«ã䜿çšããŸããã€ãŸããéåžžã®.NET ãããžã§ã¯ããšãŸã£ããåãããã«ããã³ãã¬ãŒãã®ãœãŒã¹ ãããžã§ã¯ãããã«ããå®è¡ããããã°ã§ããŸãã æ¢åã®ãããžã§ã¯ãããã³ãã¬ãŒãã«ããã«ã¯ã .template.config/template.json ãã¡ã€ã«ããããžã§ã¯ã ã«ãŒãã«è¿œå ããŸãã
å¿ èŠã«å¿ããŠããã³ãã¬ãŒã ãã©ã¡ãŒã¿ãŒ (ã·ã³ãã«) ã«é¢é£ä»ãããã眮æããŒã¯ã³ããã³ãã¬ãŒã ãœãŒã¹ ãã¡ã€ã«ãšãã¡ã€ã«åã«çŽæ¥æ¿å ¥ã§ããŸãã ããŒã¯ã³ãæå¹ãªãœãŒã¹ ã³ãŒãã§ãªãå Žåã¯ããã³ãã¬ãŒããšããŠãããã€ããåã«ããœãŒã¹ ãããžã§ã¯ãããã«ããå®è¡ããããã°ããããšã¯ã§ããŸããã ãã®ããŒã¯ã³ã¯ããŠãŒã¶ãŒããããã€ããããã³ãã¬ãŒãããäœæãããããžã§ã¯ãã«ã¯åœ±é¿ããŸãããããã¯ããããžã§ã¯ãã®äœææã«ãã³ãã¬ãŒã ãšã³ãžã³ã«ãã£ãŠçœ®ãæããããããã§ãã
.template.configå
ã§å¿
èŠãªãã¡ã€ã«ã¯template.jsonã ãã§ãã ãã®ãã¡ã€ã«ã¯ããã³ãã¬ãŒã ãšã³ãžã³ã«å¿
èŠãªãã® (ãã³ãã¬ãŒãã®ååãçãååãäœæè
ãåé¡ãããã³ãŠãŒã¶ãŒããã³ãã¬ãŒãããäœæãããšãã«æž¡ãããšãã§ãããã¹ãŠã®ãã©ã¡ãŒã¿ãŒ) ãäŒããŸãã
icon.png ãã¡ã€ã«ã .template.config ãã©ã«ããŒã«é
眮ããããšãã§ããŸãã ã¿ãŒããã«ã«ã¯ã¢ã€ã³ã³ã¯è¡šç€ºãããŸããããVisual Studio㯠[æ°ãããããžã§ã¯ãã®äœæ] ãã€ã¢ãã°ã®ãã³ãã¬ãŒãã®æšªã«ã¢ã€ã³ã³ã衚瀺ããŸãã 128 Ã128 PNG ã¯é©åã«åäœããŸãã
template.json ãã¡ã€ã«
template.json ãã¡ã€ã«ã¯ããã³ãã¬ãŒãã§å¿
èŠãªæ§æã®å¯äžã®éšåã§ãã
.template.config ãã©ã«ããŒå
ã«ååšãããã³ãã¬ãŒããšã³ãžã³ã«ãã³ãã¬ãŒããæç€ºããŠåŠçããæ¹æ³ãæç€ºããŸãã æ¬¡ã®è¡šã§ã¯ãäžè¬çãªå¿
é ãã£ãŒã«ããšçç¥å¯èœãªãã£ãŒã«ãã«ã€ããŠèª¬æããŸãã
| ãã£ãŒã«ã | ã¿ã€ã | å¿ é | Description |
|---|---|---|---|
$schema |
URI | ããã |
template.jsonã® JSON ã¹ããŒãã Visual Studio Codeãªã©ã®ãšãã£ã¿ãŒã§ IntelliSense ãæå¹ã«ããã«ã¯ãhttps://json.schemastore.org/templateã«èšå®ããŸãã |
author |
æåå | ããã | ãã³ãã¬ãŒãã®äœæè ã |
classifications |
array(string) | ããã | ãŠãŒã¶ãŒã dotnet new search ãŸã㯠dotnet new listã䜿çšããŠãã³ãã¬ãŒããæ€çŽ¢ããããã«äœ¿çšã§ããã¿ã°ã ãããã®å€ã¯ããã³ãã¬ãŒã ãªã¹ãã® [ã¿ã° ] åã«è¡šç€ºãããŸãã |
description |
æåå | ããã | ãã³ãã¬ãŒããäœæããå 容ã®èª¬æã |
identity |
æåå | ã€ãšã¹ | ãã³ãã¬ãŒãã®äžæèå¥åã |
name |
æåå | ã€ãšã¹ | ãŠãŒã¶ãŒã«è¡šç€ºããããã³ãã¬ãŒãã®è¡šç€ºåã |
shortName |
æåå | ã€ãšã¹ | ãŠãŒã¶ãŒããã³ãã¬ãŒãããäœæãã dotnet new ã«æž¡ãçãåå ( console ã classlibãªã©)ã |
sourceName |
æåå | ããã | ãœãŒã¹ ãã¡ã€ã«å
ã®æååãšããã³ãã¬ãŒã ãšã³ãžã³ããŠãŒã¶ãŒã -n ãŸã㯠--nameã«ãã£ãŠæå®ããååã«çœ®ãæãããã¡ã€ã«åã ãŠãŒã¶ãŒãååãæå®ããªãå Žåããšã³ãžã³ã¯çŸåšã®ãã£ã¬ã¯ããªåã䜿çšããŸãã |
preferNameDirectory |
boolean | ããã |
trueããŠãŒã¶ãŒãååãæå®ããŠãåºåãã£ã¬ã¯ããªããªãå Žåããã³ãã¬ãŒã ãšã³ãžã³ã¯ãçŸåšã®ãã£ã¬ã¯ããªã«ãã¡ã€ã«ãæžã蟌ãã®ã§ã¯ãªãããã®ååã®æ°ãããã£ã¬ã¯ããªãäœæããŸãã æ¢å®å€ã¯ false ã§ãã |
tags |
ãªããžã§ã¯ã | ããã | ãã³ãã¬ãŒãèšèªãåãªã©ã®ããããã£ãèå¥ããã¡ã¿ããŒã¿ã èšèªã«ã¯tags.languageã䜿çšããprojectãitemããŸãã¯solutionã«ã¯tags.typeã䜿çšããŸãã |
2 ã€ã®ãã£ãŒã«ãã«ã¯ç¹ã«æ³šæãå¿
èŠã§ãã
sourceNameãã£ãŒã«ãã¯ããã³ãã¬ãŒããååä»ããåŠçããæ¹æ³ã§ãããã¡ã€ã«åãšãœãŒã¹ ã³ãŒã (MyTemplate ãªã©) ã«è¡šç€ºãããæååã«èšå®ãããšããã³ãã¬ãŒã ãšã³ãžã³ã¯ãã¹ãŠã®åºçŸç®æãããã³ãã¬ãŒãã®äœææã«ãŠãŒã¶ãŒãæž¡ãä»»æã®ååã«çœ®ãæããŸãã
classificationsãã£ãŒã«ãã¯æ€åºå¯èœæ§ãå¶åŸ¡ããŸãããã³ãã¬ãŒãã®ç®çãæ£ç¢ºã«èšè¿°ããã¿ã°ãéžæããŠããŠãŒã¶ãŒãæ€çŽ¢æã«èŠã€ããããããã«ããŸãã
ã³ã³ãœãŒã« ãã³ãã¬ãŒãã®æå° template.json ãæ¬¡ã«ç€ºããŸãã
{
"$schema": "https://json.schemastore.org/template",
"author": "Your Name",
"classifications": [ "Common", "Console" ],
"description": "Creates a console application.",
"identity": "MyCompany.ConsoleTemplate.CSharp",
"name": "My Console App",
"shortName": "myconsole",
"sourceName": "MyConsoleApp",
"tags": {
"language": "C#",
"type": "project"
}
}
å®å šãªã¹ããŒã㯠JSON ã¹ããŒã ã¹ãã¢ã§å ¥æã§ããŸãã æ¡ä»¶ä»ããã¡ã€ã«ã®ã€ã³ã¯ã«ãŒããäœæåŸã®ã¢ã¯ã·ã§ã³ããã«ããããžã§ã¯ã ãã³ãã¬ãŒããªã©ã®é«åºŠãªæ§æãªãã·ã§ã³ã«ã€ããŠã¯ãdotnet/templating GitHub wiki ãåç §ããŠãã ããã
ãã³ãã¬ãŒã ãã©ã¡ãŒã¿ãŒ (ã·ã³ãã«)
template.jsonã® symbols ã»ã¯ã·ã§ã³ã§ã¯ããã³ãã¬ãŒãããäœæãããšãã«ãŠãŒã¶ãŒãæž¡ãããšãã§ãããã©ã¡ãŒã¿ãŒãå®çŸ©ããŸãã åã·ã³ãã«ã¯ dotnet new <shortName>ã® CLI ãªãã·ã§ã³ã«ãªãããã ClassName ãšããååã®ã·ã³ãã«ã¯ --ClassName ã«ãªããŸã (çãååãå®çŸ©ããå Žå㯠-C )ã
åã·ã³ãã« ãšã³ããªã¯ã次ã®äžè¬çãªèšå®ããµããŒãããŠããŸãã
| Setting | Description |
|---|---|
type |
ãŠãŒã¶ãŒåãã®ãã©ã¡ãŒã¿ãŒã«ã¯ "parameter" ããå¿
èŠããããŸãã |
description |
ãŠãŒã¶ãŒã dotnet new <shortName> -?ãå®è¡ãããšãã®ãã³ãã¬ãŒã ãã«ãåºåã«è¡šç€ºãããŸãã |
datatype |
"text"ã"bool"ã"choice"ãªã©ãäºæãããããŒã¿åã |
replaces |
ãã³ãã¬ãŒã ãšã³ãžã³ããã©ã¡ãŒã¿ãŒå€ã«çœ®ãæãããœãŒã¹ ãã¡ã€ã«ã®å å®¹ã®æååã |
fileRename |
ãã³ãã¬ãŒã ãšã³ãžã³ããã©ã¡ãŒã¿ãŒå€ã«çœ®ãæãããœãŒã¹ ãã¡ã€ã«åã®æååã |
defaultValue |
ãŠãŒã¶ãŒããã©ã¡ãŒã¿ãŒãæå®ããªãå Žåã«äœ¿çšãããå€ã |
replacesãšfileRenameã®èšå®ã¯ãã·ã³ãã«ã眮æãé§åããæ¹æ³ã§ãã ãŠãŒã¶ãŒãå€ãæå®ãããšããã³ãã¬ãŒã ãšã³ãžã³ã¯ããã¡ã€ã«ã®å
容å
ã§ replaces æååãåºçŸãããã³ã«ããã¡ã€ã«åå
ã§ fileRename æååãåºçŸãããã³ã«çœ®ãæããããŸãã ãŠãŒã¶ãŒãå€ãæå®ããªãå Žåã¯ã代ããã« defaultValue ã䜿çšãããŸãã
ããšãã°ã次ã®èšå·ã䜿çšãããšããŠãŒã¶ãŒã¯ãã³ãã¬ãŒãããäœæãããšãã«ã¯ã©ã¹åãèšå®ã§ããŸãã ãã¡ã€ã«ã®ååã倿Žããããã®äžã®ã¯ã©ã¹ãäžèŽããããã«æŽæ°ãããŸãã
"symbols": {
"ClassName": {
"type": "parameter",
"description": "The name of the code file and class.",
"datatype": "text",
"replaces": "StringExtensions",
"fileRename": "StringExtensions",
"defaultValue": "StringExtensions"
}
}
ãã®ã·ã³ãã«ãå®çŸ©ãããšããŠãŒã¶ãŒã¯dotnet new <shortName> --ClassName MyHelpersãå®è¡ããŠãMyHelpersãšããååã®ã¯ã©ã¹ãå«ã MyHelpers.cs ãšããååã®ãã¡ã€ã«ãçæã§ããŸãã ãã©ã°ããªãå Žåããã¡ã€ã«ãšã¯ã©ã¹ã¯æ¢å®ã®åå StringExtensionsä¿æãããŸãã
ãã³ãã¬ãŒããå
¬éãããã©ã¡ãŒã¿ãŒã確èªããã«ã¯ãã€ã³ã¹ããŒã«åŸã« -? ãçãååã«æž¡ããŸãã
dotnet new <shortName> -?
ãã³ãã¬ãŒã ããã±ãŒãž
ãã³ãã¬ãŒã ããã±ãŒãžã¯ã1 ã€ä»¥äžã®ãã³ãã¬ãŒãããã³ãã«ãã NuGet (.nupkg) ãã¡ã€ã«ã§ãã ãŠãŒã¶ãŒããã³ãã¬ãŒã ããã±ãŒãžãã€ã³ã¹ããŒã«ãããšã.NET ãã³ãã¬ãŒã ãšã³ãžã³ã¯ããã®äžã®ãã¹ãŠã®ãã³ãã¬ãŒããäžåºŠã«ç»é²ããŸãã ããã±ãŒãžã¯ããã³ãã¬ãŒããé
åžããæšæºçãªæ¹æ³ã§ãã 1 ã€ã®ããã±ãŒãžã NuGet.org ãŸãã¯ãã©ã€ããŒã NuGet ãã£ãŒãã«çºè¡ããããããŒã«ã« .nupkg ãã¡ã€ã«ãå
±æãããšããŠãŒã¶ãŒã¯ 1 ã€ã®ã³ãã³ãã§ã³ã¬ã¯ã·ã§ã³å
šäœãååŸã§ããŸãã
ãã³ãã¬ãŒã ããã±ãŒãžããã«ãããã«ã¯ãã³ã³ãã€ã« ãããžã§ã¯ãã§ã¯ãªãããã±ãŒãž ãããžã§ã¯ããšããŠæ©èœããããã«æ§æããã C# ãããžã§ã¯ã ãã¡ã€ã« (.csproj) ã䜿çšããŸãã ãã®äœæ¥ãè¡ãäž»ãªèšå®ã¯æ¬¡ã®ãšããã§ãã
| Setting | äŸ¡å€ | Purpose |
|---|---|---|
PackageType |
Template |
ããã±ãŒãžããã³ãã¬ãŒã ããã±ãŒãžãšããŠããŒã¯ããçµæ dotnet new search 衚瀺ãããããã«ããŸãã |
IncludeContentInPack |
true |
NuGet ããã±ãŒãžã«ã³ã³ãã³ã ãã¡ã€ã«ãå«ããŸãã |
IncludeBuildOutput |
false |
ã³ã³ãã€ã«æžã¿ãã€ããªãããã±ãŒãžã«è¿œå ãããªãããã«ããŸãã |
ContentTargetFolders |
content |
ãã³ãã¬ãŒã ãã©ã«ããŒã NuGet ããã±ãŒãžã® content ãã©ã«ããŒå
ã«é
眮ããŸãããã®ãã©ã«ããŒã¯ããã³ãã¬ãŒã ãšã³ãžã³ãæ€çŽ¢ããå Žæã§ãã |
templatepack ãããžã§ã¯ã ãã³ãã¬ãŒãã¯ãããã±ãŒãžåãããžã§ã¯ããäœæããæãç°¡åãªæ¹æ³ãæäŸããŸãã
Microsoftãã€ã³ã¹ããŒã«ããŸããTemplateEngine.Authoring.Templates NuGet ããã±ãŒãž:
dotnet new install Microsoft.TemplateEngine.Authoring.Templatesããã±ãŒãž åãããžã§ã¯ããäœæããŸãã
dotnet new templatepack -n <PackageName>
çæããããããžã§ã¯ãã«ã¯ãæ£ãã .csproj èšå®ããã³ãã¬ãŒãã® content ãã©ã«ããŒããã³ãã¬ãŒãæ€èšŒãšãªãã·ã§ã³ã®ããŒã«ã©ã€ãºã®ããã® MSBuild ã¿ã¹ã¯ãå«ãŸããŸãã
ãã³ãã¬ãŒã ããã±ãŒãžã®äœæããããã³ã°ãçºè¡ã®å®å šãªãã¥ãŒããªã¢ã«ã«ã€ããŠã¯ãã ãã¥ãŒããªã¢ã«: ãã³ãã¬ãŒã ããã±ãŒãžãäœæããããåç §ããŠãã ããã
ãã³ãã¬ãŒããããŒã«ã«ã§ãã¹ããã
ãã³ãã¬ãŒãã®éçºæã«ãæåã«ããã±ãŒãžããã«ãããã«ããã®ãã©ã«ããŒããçŽæ¥ãã³ãã¬ãŒããã€ã³ã¹ããŒã«ããŠãã¹ãããŸãã
.template.config ãã©ã«ããŒãå«ããã£ã¬ã¯ããªãžã®ãã¹ãæž¡ããŸãã
dotnet new install ./mytemplate/
ã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ãã³ãã¬ãŒã ããã±ãŒãžãšãåããã±ãŒãžãã¢ã³ã€ã³ã¹ããŒã«ããããã®æ£ç¢ºãªã³ãã³ãã衚瀺ããã«ã¯ãåŒæ°ãªãã§ dotnet new uninstall ãå®è¡ããŸãã
dotnet new uninstall
ãã£ã¬ã¯ããªããã€ã³ã¹ããŒã«ããããã³ãã¬ãŒããã¢ã³ã€ã³ã¹ããŒã«ããã«ã¯ãã€ã³ã¹ããŒã«ã«äœ¿çšããã®ãšåããã£ã¬ã¯ã㪠ãã¹ãæž¡ããŸãã
dotnet new uninstall ./mytemplate/
ãã³ãã¬ãŒããå
±æããæºåãã§ããããããã NuGet ããã±ãŒãžãšããŠããã¯ã ( ãã³ãã¬ãŒã ããã±ãŒãžãåç
§)ãé
åžããŸãã ãŠãŒã¶ãŒã¯ã dotnet new install ãšæ¬¡ã®ããããã®ãœãŒã¹åŒæ°ã䜿çšããŠãçºè¡ããããã³ãã¬ãŒããã€ã³ã¹ããŒã«ããŸãã
NuGet ããã±ãŒãž IDãçŸåšã®ãã£ã¬ã¯ããªçšã«æ§æããã NuGet ãœãŒã¹ããææ°ã®å®å®ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããŸãã
dotnet new install AdatumCorporation.ConsoleTemplate.CSharpã«ã¹ã¿ã ãã£ãŒã URL ãæã€ NuGet ããã±ãŒãž IDã
--nuget-sourceãªãã·ã§ã³ã§ã¯ãæ§ææžã¿ã® NuGet ãœãŒã¹ã«å ããŠãæå®ãããã£ãŒããããã®ã€ã³ã¹ããŒã«ã§ã®ã¿äœ¿çšãããŸããdotnet new install AdatumCorporation.ConsoleTemplate.CSharp --nuget-source https://mynugetfeed.example.com/v3/index.jsonããŒã«ã«
.nupkgãã¡ã€ã«ãžã®ãã¹:dotnet new install ./AdatumCorporation.ConsoleTemplate.CSharp.1.0.0.nupkg
Warning
ãã³ãã¬ãŒãã§ã¯ããããžã§ã¯ãã®äœææã« MSBuild ã¿ã¹ã¯ãšä»»æã®ã³ãŒããå®è¡ã§ããŸãã ä¿¡é Œã§ãããœãŒã¹ããã®ãã³ãã¬ãŒãã®ã¿ãã€ã³ã¹ããŒã«ããŸãã
NuGet ãœãŒã¹ãŸãã¯ããŒã«ã« .nupkg ãã¡ã€ã«ããã€ã³ã¹ããŒã«ãããŠããããã±ãŒãžãã¢ã³ã€ã³ã¹ããŒã«ããã«ã¯ãNuGet ããã±ãŒãž ID ã䜿çšããŸãã
dotnet new uninstall AdatumCorporation.ConsoleTemplate.CSharp
çµã¿èŸŒã¿ã® SDK ãã³ãã¬ãŒãã¯ã¢ã³ã€ã³ã¹ããŒã«ãªã¹ãã«è¡šç€ºãããªãããã dotnet new uninstallã§ã¯åé€ã§ããŸããã
ãã³ãã¬ãŒãã®ããŒã«ã©ã€ãº
.NET ãã³ãã¬ãŒã ãšã³ãžã³ã¯ããã³ãã¬ãŒã ã¡ã¿ããŒã¿ã®ãªãã·ã§ã³ã®ããŒã«ã©ã€ãºããµããŒãããŠããŸãã ããŒã«ã©ã€ãº ãã¡ã€ã«ãæå®ãããšãdotnet newã [Visual Studioæ°ããProject] ãã€ã¢ãã°ãªã©ã®ãã¹ãã«ãå
ã®äœæãããèšèªã§ã¯ãªãããã³ãã¬ãŒãã®ååã説æãã·ã³ãã«æ
å ±ããŠãŒã¶ãŒã®èšèªã§è¡šç€ºãããŸãã
次ã®ãã³ãã¬ãŒã ãã£ãŒã«ãã¯ããŒã«ã©ã€ãºããµããŒãããŠããŸãã
nameauthordescription- ã·ã³ãã«
descriptionãšdisplayName - éžæè¢ãã©ã¡ãŒã¿ãŒå ã®åéžæè¢ã®èª¬æãšè¡šç€ºå
- ã¢ã¯ã·ã§ã³ã®
descriptionåŸãšmanualInstructions
ããŒã«ã©ã€ãºã远å ããã«ã¯ã.template.configå
ã« localize ãµããã©ã«ããŒãäœæããèšèªããšã« 1 ã€ã® JSON ãã¡ã€ã«ã远å ããŸãã åãã¡ã€ã«templatestrings.<lang-code>.jsonã«ååãä»ããŸãã<lang-code>ã¯ãpt-BRãzh-Hansãdeãªã©ãæå¹ãªCultureInfoåãšäžèŽããŸãã åãã¡ã€ã«ã«ã¯ãå
¥ãåã«ãªã£ããã£ãŒã«ãã®åºåãèšå·ãšããŠ/ã䜿çšããŠãããŒãtemplate.jsonå
ã®èŠçŽ ãžã®ãã¹ã§ããããŒãšå€ã®ãã¢ãå«ãŸããŠããŸãã
ããšãã°ã次ã®å
容㮠template.json ãæå®ããŸãã
{
"$schema": "https://json.schemastore.org/template",
"author": "Microsoft",
"classifications": [ "Config" ],
"name": "EditorConfig file",
"description": "Creates an .editorconfig file for configuring code style preferences.",
"symbols": {
"Empty": {
"type": "parameter",
"datatype": "bool",
"defaultValue": "false",
"displayName": "Empty",
"description": "Creates empty .editorconfig instead of the defaults for .NET."
}
}
}
templatestrings.pt-BR.jsonãšããååã®ãã«ãã¬ã«èª (ãã©ãžã«) ã®ããŒã«ã©ã€ãº ãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
{
"author": "Microsoft",
"name": "Arquivo EditorConfig",
"description": "Cria um arquivo .editorconfig para configurar as preferências de estilo de código.",
"symbols/Empty/displayName": "Vazio",
"symbols/Empty/description": "Cria .editorconfig vazio em vez dos padrões para .NET."
}
ãã³ãã¬ãŒã ãšã³ãžã³ã¯ããã³ãã¬ãŒãæ å ±ãèªã¿èŸŒããšãã«ãããã®ãã¡ã€ã«ãè§£æããçŸåšã® UI ã«ã«ãã£ã«åºã¥ããŠããŒã«ã©ã€ãºãããå€ãèªåçã«è¿ããŸãããŠãŒã¶ãŒã«è¿œå ã®æé ã¯å¿ èŠãããŸããã
ããŒã«ã©ã€ãºã¯çç¥å¯èœã§ãã ããŒã«ã©ã€ãº ãã¡ã€ã«ãå«ããªãå Žåããã³ãã¬ãŒãã¯æ£åžžã«åäœããåžžã« template.jsonã®å€ã衚瀺ãããŸãã 詳现ã«ã€ããŠã¯ã dotnet/templating Wiki ã®ããŒã«ã©ã€ãº ããŒãžãåç
§ããŠãã ããã
Visual Studio ã®çµ±å
Visual Studioã® [æ°ãããããžã§ã¯ãã®äœæ] ãã€ã¢ãã°ã§ã¯ããããžã§ã¯ã ãã³ãã¬ãŒãã«.NET ãã³ãã¬ãŒã ãšã³ãžã³.NET䜿çšããŸãã
dotnet newçšã«äœæãããã³ãã¬ãŒãã¯ã远å ã®æ§æãªãã§ãVisual Studioã§ãæ©èœããŸãã ãŠãŒã¶ãŒãdotnet new installã䜿çšããŠãã³ãã¬ãŒã ããã±ãŒãžãã€ã³ã¹ããŒã«ãããšãVisual Studioã¯èªåçã«ãã³ãã¬ãŒããæ€åºãããã€ã¢ãã°ã«è¡šç€ºããŸãã
Projectãšãœãªã¥ãŒã·ã§ã³ ãã³ãã¬ãŒãã¯ãçµã¿èŸŒã¿ã® SDK ãã³ãã¬ãŒããšå
±ã« [æ°ããprojectã®äœæ] ãã€ã¢ãã°ã«è¡šç€ºãããŸãã ãŠãŒã¶ãŒã¯ããã³ãã¬ãŒãã®template.json ãã¡ã€ã«ã® classifications ãã£ãŒã«ããããååãèšèªããŸãã¯ã¿ã°ã§ãã³ãã¬ãŒããæ€çŽ¢ã§ããŸãã æ£ç¢ºãªåé¡ã¯ããã³ãã¬ãŒããé©åãªãã£ã«ã¿ãŒ ã«ããŽãªã«è¡šç€ºãããã®ã«åœ¹ç«ã€ãããæ
éã«éžæããŠãã ããã ãã€ã¢ãã°ã§ãã³ãã¬ãŒããæŽç·Žãããå€èгã«ããã«ã¯ã.template.config ãã©ã«ããŒã«icon.pngã远å Visual Studioããã³ãã¬ãŒãã®ååã®æšªã«è¡šç€ºãããŸãã
ã¢ã€ãã ãã³ãã¬ãŒã㯠çŸåšã[ 远å >æ°ããã¢ã€ãã ] ãã€ã¢ãã°ã«ã¯è¡šç€ºãããŸããã ãŠãŒã¶ãŒã¯ãã¿ãŒããã«ã® dotnet new ã³ãã³ãã§é
ç®ãã³ãã¬ãŒããåŒãç¶ã䜿çšã§ããŸãã
ãŸã ã€ã³ã¹ããŒã«ããŠããªããŠãŒã¶ãŒ Visual Studioãã³ãã¬ãŒããæ€åºã§ããããã«ããã«ã¯ããã³ãã¬ãŒã ããã±ãŒãžã nuget.org ã«çºè¡ããŸãã[æ°ãããããžã§ã¯ãã®äœæ] ãã€ã¢ãã°ã«ã¯ããã³ãã¬ãŒã ããã±ãŒãžã® nuget.org ãæ€çŽ¢ãããªã³ã©ã€ã³æ€çŽ¢ãªãã·ã§ã³ããããã«ãã³ãã¬ãŒããã€ã³ã¹ããŒã«ããæ©èœãå«ãŸããŠããŸãã ãŠãŒã¶ãŒããã®ãªãã·ã§ã³ã䜿çšããŠããã±ãŒãžãã€ã³ã¹ããŒã«ãããšãVisual Studioã¯dotnet new installãšåãã€ã³ã¹ããŒã« ã¡ã«ããºã ã䜿çšããŸãã
ãã³ãã¬ãŒãã®äžŠã¹æ¿ãé åºã®å¶åŸ¡ã IDE åºæã®è¿œå ãªãã·ã§ã³ã®æ§æãªã©ãVisual Studioåºæã®çµ±åã«é¢ãã詳现ãªã¬ã€ãã³ã¹ã«ã€ããŠã¯ãSayed Hashimi ã®ãã³ãã¬ãŒã ãµã³ãã« ãªããžããªãåç §ããŠãã ããã
é¢é£ããã³ã³ãã³ã
- ãã¥ãŒããªã¢ã«: é ç®ãã³ãã¬ãŒããäœæãã
- ãã¥ãŒããªã¢ã«: ãããžã§ã¯ã ãã³ãã¬ãŒããäœæãã
- ãã¥ãŒããªã¢ã«: ãã³ãã¬ãŒã ããã±ãŒãžãäœæãã
- dotnet new ã³ãã³ã
- dotnet/templating GitHub repo wiki
- ãã³ãã¬ãŒãã®ãµã³ãã«