Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®èšäºã§ã¯ã.NET ã¢ããªã±ãŒã·ã§ã³ãçºè¡ããããŸããŸãªæ¹æ³ã«ã€ããŠèª¬æããŸãã å ¬éã¢ãŒããå®è¡å¯èœãã¡ã€ã«ãšã¯ãã¹ãã©ãããã©ãŒã ãã€ããªãçæããæ¹æ³ããããã€ç°å¢ãšã©ã³ã¿ã€ã ç°å¢ã«å¯Ÿããåã¢ãããŒãã®åœ±é¿ã«ã€ããŠèª¬æããŸãã .NET CLI ãŸã㯠Visual Studio ã䜿çšããŠã.NET ã¢ããªã±ãŒã·ã§ã³ãçºè¡ã§ããŸãã
çºè¡ã«é¢ããçããã¥ãŒããªã¢ã«ã«ã€ããŠã¯ããTutorial: .NET ã³ã³ãœãŒã« ã¢ããªã±ãŒã·ã§ã³ãçºè¡ãããåç §ããŠãã ããã
çºè¡ã«é¢ããçããã¥ãŒããªã¢ã«ã«ã€ããŠã¯ããTutorial: .NET ã³ã³ãœãŒã« ã¢ããªã±ãŒã·ã§ã³ãçºè¡ãããåç §ããŠãã ããã
åºçãšã¯äœã§ãã?
.NET ã¢ããªãçºè¡ãããšããããšã¯ããœãŒã¹ ã³ãŒããã³ã³ãã€ã«ããŠãäŸåé¢ä¿ãé¢é£ãã¡ã€ã«ãšå ±ã«å®è¡å¯èœãã¡ã€ã«ãŸãã¯ãã€ããªãäœæããŠé åžããããšãæå³ããŸãã çºè¡åŸããµãŒããŒãé åžãã©ãããã©ãŒã ãã³ã³ãããŒããŸãã¯ã¯ã©ãŠãç°å¢ã«ã¢ããªããããã€ããŸãã çºè¡ããã»ã¹ã§ã¯ããããã€çšã«ã¢ããªãæºåããéçºç°å¢ã®å€éšã§äœ¿çšããŸãã
çºè¡ã¢ãŒã
ã¢ããªãçºè¡ããã«ã¯ã䞻㫠2 ã€ã®æ¹æ³ããããŸãã ãã®æ±ºå®ã«åœ±é¿ãäžããèŠå ã«ã¯ããããã€ç°å¢ã«é©åãª.NET ã©ã³ã¿ã€ã ãã€ã³ã¹ããŒã«ãããŠãããã©ãããããã³ã©ã³ã¿ã€ã ãã¢ããªã«ãã³ãã«ããå¿ èŠãããç¹å®ã®ã³ã³ãã€ã«æ©èœãå¿ èŠãã©ãããªã©ããããŸãã 2 ã€ã®å ¬éã¢ãŒãã¯æ¬¡ã®ãšããã§ãã
èªå·±å®çµåã§å ¬é
ãã®ã¢ãŒãã§ã¯ãã¢ããªã®èµ·åã«äœ¿çšããããã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ãã¢ã㪠ã³ãŒããå«ãã³ã³ãã€ã«æžã¿ãã€ããªãã¢ããªã®äŸåé¢ä¿ãã¢ããªã®å®è¡ã«å¿ èŠãª.NET ã©ã³ã¿ã€ã ãå«ãçºè¡ãã©ã«ããŒãçæãããŸãã ã¢ããªãå®è¡ããç°å¢ã«ã¯ã.NET ã©ã³ã¿ã€ã ããã¬ã€ã³ã¹ããŒã«ãããŠããå¿ èŠã¯ãããŸããããã¬ãŒã ã¯ãŒã¯äŸåã®çºè¡
ãã®ã¢ãŒãã§ã¯ãã¢ããªã®èµ·åã«äœ¿çšããããªãã·ã§ã³ã®ãã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ãã¢ã㪠ã³ãŒããå«ãã³ã³ãã€ã«æžã¿ãã€ããªãããã³ã¢ããªã®äŸåé¢ä¿ãå«ãçºè¡ãã©ã«ããŒãçæãããŸãã ã¢ããªãå®è¡ããç°å¢ã«ã¯ãã¢ããªã§äœ¿çšã§ããããŒãžã§ã³ã® .NET ã©ã³ã¿ã€ã ãã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸãã
Important
ã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ããŸãã RID ã®è©³çްã«ã€ããŠã¯ãã.NET RID ã«ã¿ãã°ããåç §>ã
åºæ¬çãªçºè¡ã®æ¹æ³
ãããžã§ã¯ã ãã¡ã€ã«ã® <TargetFramework> èšå®ã§ã¯ãã¢ããªãçºè¡ãããšãã«æ¢å®ã®ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ãæå®ããŸãã ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ã¯ãä»»æã®æå¹ãª ã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ ã¢ãã«ãŒ (TFM) ã«å€æŽã§ããŸãã ããšãã°ããããžã§ã¯ãã§ <TargetFramework>net9.0</TargetFramework> ã䜿çšããŠããå Žåã.NET 9 ãã¿ãŒã²ãããšãããã€ããªãäœæãããŸãã
è€æ°ã®ãã¬ãŒã ã¯ãŒã¯ãã¿ãŒã²ããã«ããå Žåã¯ãã»ãã³ãã³ã§åºåã£ãŠè€æ°ã® TFM å€ã« <TargetFrameworks> èšå®ãèšå®ã§ããŸãã ã¢ããªããã«ããããšããããžã§ã¯ãã«ãã£ãŠå®çŸ©ãããã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ããšã«ã¢ããªããã«ããããŸãã ãã ããã¢ããªãçºè¡ãããšãã¯ãã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ãæå®ããå¿
èŠããããŸãã
æ¢å®ã®ãã«ãæ§æã¢ãŒã㯠ãªãªãŒã¹ ã§ããã-c ãã©ã¡ãŒã¿ãŒã§å€æŽããªãéããã®ãŸãŸã§ãã
dotnet publish -c Release -f net9.0
dotnet publish ã³ãã³ãã®æ¢å®ã®åºåãã£ã¬ã¯ããªã¯./bin/<BUILD-CONFIGURATION>/<TFM>/publish/ã ããšãã°ãdotnet publish -c Release -f net9.0ãã./bin/Release/net9.0/publish/ãžçºè¡ãããŸãã ãã ãããã¹ãŠã®ãã«ãåºåã«å¯ŸããŠç°¡ç¥åãããåºåãã¹ãšãã©ã«ããŒæ§é ãéžæã§ããŸãã 詳现ã«ã€ããŠã¯ãã ææç©ã®åºåã¬ã€ã¢ãŠãããåç
§ããŠãã ããã
Important
--no-build ãã©ã¡ãŒã¿ãŒãæž¡ããŠçºè¡äžã«ãã«ã æé ãã¹ãããããå Žåã¯ãã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ããã«ã ã¢ãŒããªã©ãã¢ããªã®ãã«ãæã«äœ¿çšããã®ãšåããªãã·ã§ã³ã䜿çšããŸãã ããšãã°ããã¬ãŒã ã¯ãŒã¯ã«äŸåããã¢ããªãšããŠãã«ãããèªå·±å®çµåã¢ããªãšããŠçºè¡ããªãã§ãã ããã
Visual Studioã§ãã¿ãŒã²ãã ãã¬ãŒã ã¯ãŒã¯ããšã«åå¥ã®çºè¡ãããã¡ã€ã«ãäœæããŸãã
ããŒã¿ãã« ãã€ããª
.NET ã¢ããªãçºè¡ãããšãã¯ãç¹å®ã®ãã©ãããã©ãŒã ãã¿ãŒã²ããã«ããããããŒã¿ãã« ãã€ããªãäœæã§ããŸãã æ¢å®ã§ã¯ãç§»æ€å¯èœãªãã€ããªãäœæããå Žåã§ãããã®åäœãæç€ºçã«ç¡å¹ã«ããªãéãã.NETã¯ãã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã« ("apphost") ãããŒã¿ãã« DLL ãšå ±ã«çºè¡ããŸãã
ãã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ã¯ãããããã£UseAppHostãæ¢å®ã§trueãšãªã£ãŠããããã«äœæãããŸãã ããŒã¿ãã« DLL ã®ã¿ãçºè¡ãããã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ãé€å€ããã«ã¯ãUseAppHost ãfalseã«èšå®ããã³ãã³ã ã©ã€ã³ (-p:UseAppHost=false) ãŸãã¯ãããžã§ã¯ã ããããã£ãšããŠäœ¿çšããŸãã
ç¹å®ã®ãã©ãããã©ãŒã ãã¿ãŒã²ããã«ããå©ç¹ã¯ãã¢ããªãå¿ èŠãšãã å¯èœæ§ããããã€ãã£ãã®äŸåé¢ä¿ ãåŠçããã¿ãŒã²ãã ãã©ãããã©ãŒã ã®ç¹å®ã®èŠä»¶ãšã®äºææ§ã確ä¿ã§ããããšã§ãã
ãã€ãã£ãã®äŸåé¢ä¿
ã¢ããªã«ãã€ãã£ãã®äŸåé¢ä¿ãããå Žåãç§»æ€å¯èœãªãã€ããªãšããŠå ¬éãããŠããå Žåã¯ãå¥ã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã§å®è¡ãããªãå¯èœæ§ããããŸãã ããšãã°ãWindows API ã«äŸåããã¢ããªã¯ãmacOS ãŸã㯠Linux ã§ã¯ãã€ãã£ãã«å®è¡ãããŸããã ãã©ãããã©ãŒã åºæã®ã³ãŒããæäŸãããã©ãããã©ãŒã ããšã«å®è¡å¯èœãã¡ã€ã«ãã³ã³ãã€ã«ããå¿ èŠããããŸãã
ãŸããåç §ããã©ã€ãã©ãªããã©ãããã©ãŒã åºæã®äŸåé¢ä¿ãæäŸããå Žåã¯ãã¢ããªããã¹ãŠã®ãã©ãããã©ãŒã ã§å®è¡ãããªãå¯èœæ§ããããŸãã ãã ããç¹å®ã®ãã©ãããã©ãŒã ãçºè¡ããŠã¿ãŒã²ããã«ãããšãNuGet ããã±ãŒãžã®ãã©ãããã©ãŒã åºæã®äŸåé¢ä¿ãçºè¡ãã©ã«ããŒã«ã³ããŒãããŸãã
ã¢ããªããã€ãã£ãã®äŸåé¢ä¿ã䜿çšããŠçºè¡ãããããã«ããã«ã¯ãç¹å®ã®ãã©ãããã©ãŒã ã«å¯ŸããŠçºè¡ããŸãã
dotnet publish -c Release -r <RID>
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-r <RID>ãã®ã¹ã€ããã§ã¯ãã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ãããã€ãã£ãã®äŸåé¢ä¿ãå«ãŸããŠããããšã確èªããŸã (å¿ èŠãªå Žå)ã ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
- åããŠçºè¡ããå Žåã¯ãçºè¡å ãšã㊠[ãã©ã«ããŒ] ãéžæãã[ 次ãž] ãéžæããŸãã
- ãã©ã«ããŒã®å Žæãéžæããããæ¢å®å€ããã®ãŸãŸäœ¿çšããŠã[ å®äº] ãéžæããŸãã
- çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
- Target Runtime ãç®çã®ãã©ãããã©ãŒã (ããšãã°ã64 ããã Windowsã®å Žå㯠win-x64) ã«èšå®ããŸãã
- [ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
ã¯ã€ã㯠ãªãã¡ã¬ã³ã¹
次ã®è¡šã¯ã dotnet CLI ã䜿çšããŠã¢ããªãçºè¡ããæ¹æ³ã®ç°¡åãªäŸã瀺ããŠããŸãã
| çºè¡ã¢ãŒã | ã³ãã³ã |
|---|---|
| ãã¬ãŒã ã¯ãŒã¯ã«äŸåããå±é | dotnet publish -c Release [-r <RID>] |
| ãã¬ãŒã ã¯ãŒã¯äŸåé 眮 (DLL) | dotnet publish -c Release -p:UseAppHost=false |
| èªå·±å®çµåã®ããã〠| dotnet publish -c Release [-r <RID>] --self-contained true |
| åäžãã¡ã€ã«ã®ããã〠| dotnet publish -c Release [-r <RID>] -p:PublishSingleFile=true |
| ãã€ãã£ã AOT ããã〠| dotnet publish -c Release [-r <RID>] -p:PublishAot=true |
| ReadyToRun ã®ããã〠| dotnet publish -c Release [-r <RID>] -p:PublishReadyToRun=true |
| ã³ã³ãããŒã®ããã〠| dotnet publish -c Release [-r <RID>] -t:PublishContainer |
ãã¬ãŒã ã¯ãŒã¯äŸåãšããŠå ¬é
CLI ãŸãã¯Visual Studioããçºè¡ããå Žåããã¬ãŒã ã¯ãŒã¯äŸåã®ãããã€ã¯æ¢å®ã®ã¢ãŒãã§ãã ãã®ã¢ãŒãã§ã¯ãã¢ããªã®èµ·åã«äœ¿çšã§ãããã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ãäœæãããŸãã ãã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ã®ååã¯ãWindows ã§ã¯ myapp.exe ã«äŒŒãŠããããä»ã®ãã©ãããã©ãŒã ã§ã¯ myapp ã«äŒŒãŠããŸãã
ã¢ããªã¯ãç¹å®ã®ããŒãžã§ã³ã®.NETã察象ã«ããããã«æ§æãããŠããŸãã 察象.NETã©ã³ã¿ã€ã ã¯ãã¢ããªãå®è¡ãããŠããç°å¢ã«ååšããå¿ èŠããããŸãã ããšãã°ãã¢ããªã®ã¿ãŒã²ããã .NET 9 ã®å Žåãã¢ããªãå®è¡ããç°å¢ã«ã¯ã.NET 9 ã©ã³ã¿ã€ã ãã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸãã
ãã¬ãŒã ã¯ãŒã¯ã«äŸåãããããã€ãçºè¡ãããšãã¢ããªãå®è¡ããç°å¢ã§äœ¿çšå¯èœãªææ°ã®.NETã»ãã¥ãªãã£ãããã«èªåçã«ããŒã«ãã©ã¯ãŒãããã¢ããªãäœæãããŸãã ã³ã³ãã€ã«æã®ããŒãžã§ã³ ãã€ã³ãã£ã³ã°ã®è©³çްã«ã€ããŠã¯ãã䜿çšãã.NETããŒãžã§ã³ãéžæãããåç §ããŠãã ããã
å©ç¹
- å°èŠæš¡ãªãããã€: ã¢ããªãšãã®äŸåé¢ä¿ã®ã¿ã忣ãããŸãã ã¢ããªãå®è¡ããç°å¢ã«ã¯ã.NET ã©ã³ã¿ã€ã ãæ¢ã«ã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸãã
- Cross-platform: ã¢ããªãš.NETããŒã¹ã®ã©ã€ãã©ãªã¯ãä»ã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã§å®è¡ãããŸãã
- ææ°ã®ä¿®æ£ããã°ã©ã ãé©çšãããã©ã³ã¿ã€ã ã䜿çšããŸããã¢ããªã¯ãç°å¢ã«ã€ã³ã¹ããŒã«ãããŠããææ°ã®ã©ã³ã¿ã€ã ã䜿çšããŸãã
æ¬ ç¹
- ã©ã³ã¿ã€ã ãäºåã«ã€ã³ã¹ããŒã«ããå¿ èŠããããŸã: ã¢ããªã¯ãã¿ãŒã²ãã.NETã®ããŒãžã§ã³ãæ¢ã«ç°å¢ã«ã€ã³ã¹ããŒã«ãããŠããå Žåã«ã®ã¿å®è¡ã§ããŸãã
- .NETã¯å€æŽãããå¯èœæ§ããããŸã: ã¢ããªãå®è¡ããç°å¢ã§ã¯ãæ°ãã.NETã©ã³ã¿ã€ã ã䜿çšãããå¯èœæ§ããããã¢ããªã®åäœã倿Žãããå¯èœæ§ããããŸãã
ãã¬ãŒã ã¯ãŒã¯ã«äŸåããã¢ããªãèµ·åãã
ãã¬ãŒã ã¯ãŒã¯ã«äŸåããã¢ããªãå®è¡ããã«ã¯ããã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã« ("apphost") ãš dotnet myapp.dllã® 2 ã€ã®æ¹æ³ããããŸãã
dotnet myapp.dllãåŒã³åºã代ããã« apphost å®è¡å¯èœãã¡ã€ã«ãçŽæ¥å®è¡ã§ããŸããããã¯ãåŒãç¶ãã¢ããªãå®è¡ããããã®èš±å®¹å¯èœãªæ¹æ³ã§ãã å¯èœãªéããapphost ã䜿çšããããšããå§ãããŸãã apphost ã䜿çšããå©ç¹ã¯å€æ°ãããŸãã
- å®è¡å¯èœãã¡ã€ã«ã¯ãæšæºã®ãã€ãã£ã ãã©ãããã©ãŒã å®è¡å¯èœãã¡ã€ã«ã®ããã«è¡šç€ºãããŸãã
- å®è¡å¯èœãã¡ã€ã«åã¯ããã»ã¹åã«ä¿æãããŸããã€ãŸããã¢ããªã¯ååã«åºã¥ããŠç°¡åã«èªèã§ããŸãã
- apphost ã¯ãã€ãã£ã ãã€ããªã§ããããããããã§ã¹ããªã©ã®ãã€ãã£ãã¢ã»ããããããã«ã¢ã¿ããã§ããŸãã
- Apphost ã«ã¯ãã»ãã¥ãªãã£ã匷åããäœã¬ãã«ã®ã»ãã¥ãªãã£è»œæžçãæ¢å®ã§é©çšãããŠããŸãã ããšãã°ãå¶åŸ¡ãããŒåŒ·å¶ãã¯ãããž (CET) ã·ã£ã㊠ã¹ã¿ãã¯ã¯ãæ¢å®ã§ .NET 9 以éã§æå¹ã«ãªã£ãŠããŸãã
dotnetã«é©çšããã軜æžçã¯ããµããŒããããŠãããã¹ãŠã®ã©ã³ã¿ã€ã ã®æå°å ±é忝ã§ãã
å ¬éãã
dotnet publish -c Release [-r <RID>]
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-r <RID>ãã®ã¹ã€ããã§ã¯ãã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ãããã€ãã£ãã®äŸåé¢ä¿ãå«ãŸããŠããããšã確èªããŸã (å¿ èŠãªå Žå)ã ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
ãŸãã¯ãæç€ºçã«èšããš:
dotnet publish -c Release [-r <RID>] --self-contained false
--self-contained falseãã®ã¹ã€ããã¯ããã¬ãŒã ã¯ãŒã¯ã«äŸåãããããã€ãäœæããããã« .NET SDK ã«æç€ºçã«æç€ºããŸãã
- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
- åããŠçºè¡ããå Žåã¯ãçºè¡å ãšã㊠[ãã©ã«ããŒ] ãéžæãã[ 次ãž] ãéžæããŸãã
- ãã©ã«ããŒã®å Žæãéžæããããæ¢å®å€ããã®ãŸãŸäœ¿çšããŠã[ å®äº] ãéžæããŸãã
- çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
- å±éã¢ãŒãããã¬ãŒã ã¯ãŒã¯ã«äŸåããããã«èšå®ããŸã (ãããæ¢å®ã§ã)ã
- Target Runtime ãç®çã®ãã©ãããã©ãŒã (ããšãã°ã64 ããã Windowsã®å Žå㯠win-x64) ã«èšå®ããŸãã
- [ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
.NET ã€ã³ã¹ããŒã«ã®æ€çŽ¢åäœãæ§æãã
æ¢å®ã§ã¯ãapphost ã¯ã°ããŒãã«ã«ã€ã³ã¹ããŒã«ããã .NET ã©ã³ã¿ã€ã ãæ€åºããŠäœ¿çšããŸããã€ã³ã¹ããŒã«å Žæã¯ãã©ãããã©ãŒã ã«ãã£ãŠç°ãªããŸãã ã©ã³ã¿ã€ã ã®æ€åºãšã€ã³ã¹ããŒã«ã®å Žæã®è©³çްã«ã€ããŠã¯ãã ã¢ããªã®èµ·åãšã©ãŒã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããåç §ããŠãã ããã
.NETã©ã³ã¿ã€ã ãã¹ã¯ãå®è¡ããšã«ã«ã¹ã¿ãã€ãºããããšãã§ããŸãã
DOTNET_ROOTç°å¢å€æ°ã¯ãã«ã¹ã¿ã ã®å Žæãæãããã«äœ¿çšã§ããŸãã ãã¹ãŠã® DOTNET_ROOT æ§æãªãã·ã§ã³ã®è©³çްã«ã€ããŠã¯ãã.NET ç°å¢å€æ°ãåç
§ããŠãã ããã
äžè¬ã«ã DOTNET_ROOT ã䜿çšãããã¹ã ãã©ã¯ãã£ã¹ã¯æ¬¡ã®ãšããã§ãã
- æå
DOTNET_ROOTç°å¢å€æ°ãã¯ãªã¢ããŸããã€ãŸããããã¹ãDOTNET_ROOTã§å§ãŸããã¹ãŠã®ç°å¢å€æ°ãæå³ããŸãã - ã¿ãŒã²ãã ãã¹ã«ã¯
DOTNET_ROOTãèšå®ããDOTNET_ROOTã®ã¿ãèšå®ããŸãã - ã¿ãŒã²ãã apphost ãå®è¡ããŸãã
.NET 9 以éã®ããŒãžã§ã³ã§ã¯ãAppHostDotNetSearch ããããã£ãš AppHostRelativeDotNet ããããã£ã䜿çšããŠãçºè¡ãããå®è¡å¯èœãã¡ã€ã«ã®.NET ã€ã³ã¹ããŒã«æ€çŽ¢ãã¹ãæ§æã§ããŸãã
AppHostDotNetSearch ã§ã¯ãå®è¡å¯èœãã¡ã€ã«ã.NETã€ã³ã¹ããŒã«ãæ€çŽ¢ãã 1 ã€ä»¥äžã®å Žæãæå®ã§ããŸãã
-
AppLocal: ã¢ããªã®å®è¡å¯èœãã¡ã€ã«ã®ãã©ã«ã㌠-
AppRelative: ã¢ããªã®å®è¡å¯èœãã¡ã€ã«ã«å¯Ÿããçžå¯Ÿãã¹ -
EnvironmentVariable:DOTNET_ROOT[_<arch>]ç°å¢å€æ°ã®å€ -
Global: ç»é²æžã¿ ããã³ æ¢å®ã® ã°ããŒãã« ã€ã³ã¹ããŒã«å Žæ
AppHostRelativeDotNetã¯ãAppHostDotNetSearchãå«ãŸããŠãããšãã«æ€çŽ¢ãããå®è¡å¯èœãã¡ã€ã«AppRelativeçžå¯Ÿãã¹ãæå®ããŸãã
詳现ã«ã€ããŠã¯ãapphost ã® AppHostDotNetSearchã AppHostRelativeDotNetã ããã³ã€ã³ã¹ããŒã«å Žæã®ãªãã·ã§ã³ãåç
§ããŠãã ããã
ã¯ãã¹ãã©ãããã©ãŒã DLL ã®ãããã€
ãŸãã¯ããã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ã䜿çšããã«ãã¯ãã¹ãã©ãããã©ãŒã DLL ãšããŠã¢ããªãçºè¡ããããšãã§ããŸãã ãã®ã¢ãŒãã§ã¯ã myapp.dll ãã¡ã€ã«ãçºè¡åºåãã©ã«ããŒã«äœæãããŸãã ã¢ããªãå®è¡ããã«ã¯ãåºåãã©ã«ããŒã«ç§»åãã dotnet myapp.dll ã³ãã³ãã䜿çšããŸãã
ã¯ãã¹ãã©ãããã©ãŒã DLL ãšããŠçºè¡ããã«ã¯:
dotnet publish -c Release -p:UseAppHost=false
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-p:UseAppHost=falseãã®ããããã£ã¯ãããŒã¿ãã« DLL ã®ã¿ãçæãããã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ã®äœæãç¡å¹ã«ããŸãã
- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
- åããŠçºè¡ããå Žåã¯ãçºè¡å ãšã㊠[ãã©ã«ããŒ] ãéžæãã[ 次ãž] ãéžæããŸãã
- ãã©ã«ããŒã®å Žæãéžæããããæ¢å®å€ããã®ãŸãŸäœ¿çšããŠã[ å®äº] ãéžæããŸãã
- çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
- é 眮ã¢ãŒãããã¬ãŒã ã¯ãŒã¯ã«äŸåããããã«èšå®ããŸãã
- åäžãã¡ã€ã«ãçæãã ã®ãã§ãã¯ãå€ããŸãã
- ã¿ãŒã²ãã ã©ã³ã¿ã€ã ãããŒã¿ãã« (ãŸãã¯ç©ºçœã®ãŸãŸã«) ã«èšå®ããŸãã
- [ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
èªå·±å®çµåãšããŠå ¬éãã
èªå·±å®çµåããã〠(SCD) ãçºè¡ãããšãçºè¡ããã»ã¹ã«ãã£ãŠãã©ãããã©ãŒã åºæã®å®è¡å¯èœãã¡ã€ã«ãäœæãããŸãã SCD ã®çºè¡ã«ã¯ãã¢ããªãå®è¡ããããã«å¿ èŠãªãã¹ãŠã®.NET ãã¡ã€ã«ãå«ãŸããŸããã.NETã®ãã€ãã£ãäŸåé¢ä¿ã¯å«ãŸããŸããã ãããã®äŸåé¢ä¿ã¯ãã¢ããªãå®è¡ããåã«ç°å¢ã«ååšããå¿ èŠããããŸãã
SCD ãçºè¡ãããšãå©çšå¯èœãªææ°ã®.NETã»ãã¥ãªãã£ãããã«ããŒã«ãã©ã¯ãŒãããªãã¢ããªãäœæãããŸãã ã³ã³ãã€ã«æã®ããŒãžã§ã³ ãã€ã³ãã£ã³ã°ã®è©³çްã«ã€ããŠã¯ãã䜿çšãã.NETããŒãžã§ã³ãéžæãããåç §ããŠãã ããã
å©ç¹
- Control .NET ããŒãžã§ã³: ã¢ããªã§å±éãã.NETã®ããŒãžã§ã³ãå¶åŸ¡ããŸãã
- ãã©ãããã©ãŒã åºæã®ã¿ãŒã²ããèšå®: ã¢ããªã¯ãã©ãããã©ãŒã ããšã«å ¬éããå¿ èŠããããããã¢ããªã®å®è¡å Žæã¯æç¢ºã§ãã
æ¬ ç¹
- èŠæš¡ã®å€§ããå±é: ãã®ã¢ããªã«ã¯.NETã©ã³ã¿ã€ã ãšãã¹ãŠã®äŸåé¢ä¿ãå«ãŸããŠãããããããŠã³ããŒããµã€ãºãšããŒããã©ã€ãã®ç©ºãé åã¯ããã¬ãŒã ã¯ãŒã¯äŸåã®å±éããã倧ãããªããŸãã
- .NETããŒãžã§ã³ã®æŽæ°ã¯é£ãããªããŸã: .NET ã©ã³ã¿ã€ã ã¯ãæ°ããããŒãžã§ã³ã®ã¢ããªããªãªãŒã¹ããããšã§ã®ã¿ã¢ããã°ã¬ãŒãã§ããŸãã
ãã³ã
ããªãã³ã°ãããçºè¡ãŸãã¯ã°ããŒããªãŒãŒã·ã§ã³ã€ã³ããªã¢ã³ã ã¢ãŒããæå¹ã«ããããšã§ãäºææ§ã®ããèªå·±å®çµåã¢ããªã®åèšãµã€ãºãå°ããã§ããŸãã ã°ããŒããªãŒãŒã·ã§ã³ ã€ã³ããªã¢ã³ã ã¢ãŒãã®è©³çްã«ã€ããŠã¯ãã.NET ã°ããŒããªãŒãŒã·ã§ã³ ã€ã³ããªã¢ã³ã ã¢ãŒãããåç §ããŠãã ããã
å ¬éãã
dotnet publish -c Release -r <RID> --self-contained true
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-r <RID>ãã®ã¹ã€ããã§ã¯ãã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ãããã€ãã£ãã®äŸåé¢ä¿ãå«ãŸããŠããããšã確èªããŸã (å¿ èŠãªå Žå)ã ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
--self-contained trueãã®ã¹ã€ããã¯ãèªå·±å®çµåããã〠(SCD) ãšããŠå®è¡å¯èœãã¡ã€ã«ãäœæããããã« .NET SDK ã«æç€ºããŸãã
- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
- åããŠçºè¡ããå Žåã¯ãçºè¡å ãšã㊠[ãã©ã«ããŒ] ãéžæãã[ 次ãž] ãéžæããŸãã
- ãã©ã«ããŒã®å Žæãéžæããããæ¢å®å€ããã®ãŸãŸäœ¿çšããŠã[ å®äº] ãéžæããŸãã
- çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
- å±éã¢ãŒããèªå·±å®çµåã«èšå®ããŸãã
- Target Runtime ãç®çã®ãã©ãããã©ãŒã (ããšãã°ã64 ããã Windowsã®å Žå㯠win-x64) ã«èšå®ããŸãã
- [ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
åäžãã¡ã€ã«ãšããŠçºè¡ãã
ã¢ããªãåäžãã¡ã€ã«ã®ãããã€ãšããŠçºè¡ãããšãã¢ããªã±ãŒã·ã§ã³ã«äŸåãããã¹ãŠã®ãã¡ã€ã«ã 1 ã€ã®ãã€ããªã«ãã³ãã«ãããŸãã ãã®ããã〠ã¢ãã«ã¯ããã¬ãŒã ã¯ãŒã¯ã«äŸåããã¢ããªã±ãŒã·ã§ã³ãšèªå·±å®çµåã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã§äœ¿çšã§ããã¢ããªã±ãŒã·ã§ã³ã 1 ã€ã®ãã¡ã€ã«ãšããŠãããã€ããã³é åžããããã®é åçãªãªãã·ã§ã³ãæäŸããŸãã
åäžãã¡ã€ã« ã¢ããªã¯åžžã« OS ãšã¢ãŒããã¯ãã£åºæã§ãã Linux x64ãLinux Arm64ãWindows x64 ãªã©ãæ§æããšã«çºè¡ããå¿ èŠããããŸãã
å©ç¹
- é åžã®ç°¡ç¥å: ã¢ããªã±ãŒã·ã§ã³ã 1 ã€ã®å®è¡å¯èœãã¡ã€ã«ãšããŠãããã€ããŠé åžããŸãã
- ãã¡ã€ã«ã®ç ©éãã軜æž: ãã¹ãŠã®äŸåé¢ä¿ããã³ãã«ããããããè€æ°ã®ãã¡ã€ã«ã管çããå¿ èŠããªããªããŸãã
- ç°¡åãªãããã€: 1 ã€ã®ãã¡ã€ã«ãã³ããŒããŠã¢ããªã±ãŒã·ã§ã³ããããã€ããŸãã
æ¬ ç¹
- ãã¡ã€ã« ãµã€ãºã倧ãã: 1 ã€ã®ãã¡ã€ã«ã«ãã¹ãŠã®äŸåé¢ä¿ãå«ãŸãããããåã ã®ãã¡ã€ã«ããã倧ãããªããŸãã
- èµ·åé床ãé ã: ãã¡ã€ã«ã¯å®è¡æã«æœåºããå¿ èŠããããã¹ã¿ãŒãã¢ããã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- ãã©ãããã©ãŒã åºæ: ã¿ãŒã²ãã ãã©ãããã©ãŒã ããšã«åå¥ã®ãã¡ã€ã«ãçºè¡ããå¿ èŠããããŸãã
åäžãã¡ã€ã«ã®ãããã€ã¯ã ããªãã³ã° ã ReadyToRun ã³ã³ãã€ã« ãªã©ã®ä»ã®æé©åãšçµã¿åãããŠãããã«æé©åããããšãã§ããŸãã
åäžãã¡ã€ã«ã®å±éã®è©³çްã«ã€ããŠã¯ãã åäžãã¡ã€ã«ã®å±éããåç §ããŠãã ããã
å ¬éãã
dotnet publish -c Release -r <RID> -p:PublishSingleFile=true
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-r <RID>ãã®ã¹ã€ããã§ã¯ãã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ãããã€ãã£ãã®äŸåé¢ä¿ãå«ãŸããŠããããšã確èªããŸã (å¿ èŠãªå Žå)ã ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
-p:PublishSingleFile=trueãã®ããããã£ã¯ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³äŸåãã¡ã€ã«ã 1 ã€ã®ãã€ããªã«ãã³ãã«ããŸãã
- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
- åããŠçºè¡ããå Žåã¯ãçºè¡å ãšã㊠[ãã©ã«ããŒ] ãéžæãã[ 次ãž] ãéžæããŸãã
- ãã©ã«ããŒã®å Žæãéžæããããæ¢å®å€ããã®ãŸãŸäœ¿çšããŠã[ å®äº] ãéžæããŸãã
- çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
- å±éã¢ãŒããèªå·±å®çµåãŸãã¯ãã¬ãŒã ã¯ãŒã¯äŸåã«èšå®ããŸãã
- Target Runtime ãç®çã®ãã©ãããã©ãŒã (ããšãã°ã64 ããã Windowsã®å Žå㯠win-x64) ã«èšå®ããŸãã
- 1 ã€ã®ãã¡ã€ã«ãçæãã ãéžæããŸãã
- [ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
ãã€ãã£ã AOT ãšããŠçºè¡ãã
ãã€ãã£ã AOT ãããã€ã§ã¯ãã¢ããªããã€ãã£ã ã³ãŒãã«çŽæ¥ã³ã³ãã€ã«ããããããã©ã³ã¿ã€ã ãäžèŠã«ãªããŸãã ãã®çºè¡ãªãã·ã§ã³ã§ã¯ èªå·±å®çµåã®é 眮 ã¢ãŒãã䜿çšãããŸããã³ã³ãã€ã«æžã¿ã®ãã€ãã£ã ã³ãŒãã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®è¡ã«å¿ èŠãªãã¹ãŠã®ãã®ãå«ãŸããŠããå¿ èŠããããŸãã ããã«ãããèµ·åæéãççž®ãããã¡ã¢ãªäœ¿çšéãæžããŸããããµããŒããããŠããæ©èœã«ããã€ãã®å¶éããããŸãã
å©ç¹
- é«éã¹ã¿ãŒãã¢ãã: å®è¡æã« JIT ã³ã³ãã€ã«ã¯å¿ èŠãªããã¢ããªã±ãŒã·ã§ã³ã®èµ·åãé«éåãããŸãã
- ã¡ã¢ãªäœ¿çšé: åŸæ¥ã®.NET ã¢ããªã±ãŒã·ã§ã³ãšæ¯èŒããŠã¡ã¢ãªå æé åãäœããªããŸãã
- ã©ã³ã¿ã€ã ã®äŸåé¢ä¿ã¯ãããŸãã: ã©ã³ã¿ã€ã ã®ã€ã³ã¹ããŒã«ãå¿ èŠãšããã«ã¢ããªã±ãŒã·ã§ã³.NETå®è¡ãããŸãã
- ããã〠ãµã€ãºãå°ãã: å€ãã®å Žåãå®å šãªã©ã³ã¿ã€ã ã䜿çšãã èªå·±å®çµåã®ããã〠ãããå°ããã
æ¬ ç¹
- ãã¬ãŒã ã¯ãŒã¯ã®ãµããŒããéå®ç: .NETã®ãã¹ãŠã®æ©èœãã©ã€ãã©ãªããã€ãã£ãAOTãšäºææ§ããããšã¯éããŸããã
- ãã«ãæéãé·ã: ãã€ãã£ã ã³ãŒããžã®ã³ã³ãã€ã«ã«ã¯ãéåžžã®ãã«ããããé·ãæéãããããŸãã
- ãã©ãããã©ãŒã åºæ: ã¿ãŒã²ãã ãã©ãããã©ãŒã ãšã¢ãŒããã¯ãã£ããšã«åå¥ã«ã³ã³ãã€ã«ããå¿ èŠããããŸãã
- ãããã°ã®å¶é: éåžžã®.NET ã¢ããªã±ãŒã·ã§ã³ãšæ¯èŒããŠãããè€éãªãããã° ãšã¯ã¹ããªãšã³ã¹ã
ãã€ãã£ã AOT ã®ãããã€ã®è©³çްã«ã€ããŠã¯ãã ãã€ãã£ã AOT ã®ãããã€ããåç §ããŠãã ããã
å ¬éãã
dotnet publish -c Release -r <RID> -p:PublishAot=true
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-r <RID>ãã®ã¹ã€ããã§ã¯ãã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ãããã€ãã£ãã®äŸåé¢ä¿ãå«ãŸããŠããããšã確èªããŸã (å¿ èŠãªå Žå)ã ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
-p:PublishAot=trueãã®ããããã£ã䜿çšãããšããã€ãã£ã AOT ã³ã³ãã€ã«ãæå¹ã«ãªããã¢ããªããã€ãã£ã ã³ãŒãã«çŽæ¥ã³ã³ãã€ã«ãããŸãã
ãã€ãã£ã AOT çºè¡ã¯ããããžã§ã¯ã ãã¡ã€ã«ã§æ§æããå¿ èŠããããŸãã Visual Studio ã®çºè¡ UI ããã¯æå¹ã«ã§ããŸããã
ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ããããžã§ã¯ããå³ã¯ãªãã¯ãã ãããžã§ã¯ã ãã¡ã€ã«ã®ç·šéãéžæããŸãã
<PropertyGroup>ã«æ¬¡ã®ããããã£ã远å ããŸãã<PublishAot>true</PublishAot>ãããžã§ã¯ã ãã¡ã€ã«ãä¿åããŸãã
ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
åããŠçºè¡ããå Žåã¯ãçºè¡å ãšã㊠[ãã©ã«ããŒ] ãéžæãã[ 次ãž] ãéžæããŸãã
ãã©ã«ããŒã®å Žæãéžæããããæ¢å®å€ããã®ãŸãŸäœ¿çšããŠã[ å®äº] ãéžæããŸãã
çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
å±éã¢ãŒããèªå·±å®çµåã«èšå®ããŸãã
Target Runtime ãç®çã®ãã©ãããã©ãŒã (ããšãã°ã64 ããã Windowsã®å Žå㯠win-x64) ã«èšå®ããŸãã
[ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
ãã€ãã£ã AOT ã®ãããã€ã®è©³çްã«ã€ããŠã¯ãã ãã€ãã£ã AOT ã®ãããã€ããåç §ããŠãã ããã
ReadyToRun ãšããŠçºè¡ãã
ReadyToRun ã³ã³ãã€ã«ã䜿çšããŠã¢ããªãçºè¡ãããšãã¢ããªã±ãŒã·ã§ã³ ã¢ã»ã³ããªã¯ ReadyToRun (R2R) 圢åŒã§ã³ã³ãã€ã«ãããŸãã R2R ã¯ãJust-In-Time (JIT) ã³ã³ãã€ã©ãã¢ããªã±ãŒã·ã§ã³ã®èªã¿èŸŒã¿æã«å®è¡ããå¿ èŠãããäœæ¥éãæžããããšã§ãã¹ã¿ãŒãã¢ãã ããã©ãŒãã³ã¹ãåäžããããäºåå®è¡ (AOT) ã³ã³ãã€ã«ã®åœ¢åŒã§ãã ãã®çºè¡ãªãã·ã§ã³ã¯ã ãã¬ãŒã ã¯ãŒã¯ã«äŸå ããå±éã¢ãŒããš èªå·±å®çµå å±éã¢ãŒãã®äž¡æ¹ã§äœ¿çšã§ããŸãã
ReadyToRun ãã€ããªã«ã¯ãäžéèšèª (IL) ã³ãŒããšåãã³ãŒãã®ãã€ãã£ã ããŒãžã§ã³ã®äž¡æ¹ãå«ãŸããŠããŸãã R2R ãã€ããªã¯éåžžã®ã¢ã»ã³ããªããã倧ãããªããŸãããèµ·åããã©ãŒãã³ã¹ãåäžããŸãã
å©ç¹
- èµ·åæéã®ççž®: ã¢ããªã®èµ·åæã« JIT ã³ã³ãã€ã©ãå®è¡ããæéãççž®ãããŸããã
- ååäœ¿çšæã®ããã©ãŒãã³ã¹ã®åäž: ã³ãŒã ãã¹ã®ååå®è¡ã®åŸ æ©æéãççž®ãããŸããã
- æ¢åã®ã³ãŒããšäºææ§ããããŸã: ã»ãšãã©ã®.NETã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ã倿Žããã«åäœããŸãã
- æè»ãªãããã€: ãã¬ãŒã ã¯ãŒã¯ã«äŸåããå±é ã¢ãŒããš èªå·±å®çµåå±éã¢ãŒãã® äž¡æ¹ãšçµã¿åãããããšãã§ããŸãã
æ¬ ç¹
- ãµã€ãºã倧ãã: IL ã³ãŒããšãã€ãã£ã ã³ãŒãã®äž¡æ¹ãå«ãŸãããããã¢ããªã¯ãã£ã¹ã¯äžã§å€§ãããªããŸãã
- ãã«ãæéãé·ã: ã³ã³ãã€ã«ã«ã¯ãæšæºã®çºè¡ãããå€ãã®æéãããããŸãã
- ãã©ãããã©ãŒã åºæã®æé©å: æé©ãªããã©ãŒãã³ã¹ã®åäžã«ã¯ãç¹å®ã®ãã©ãããã©ãŒã ãã¿ãŒã²ããã«ããå¿ èŠããããŸãã
å ¬éãã
dotnet publish -c Release -r <RID> -p:PublishReadyToRun=true
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-r <RID>ãã®ã¹ã€ããã§ã¯ãã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ãããã€ãã£ãã®äŸåé¢ä¿ãå«ãŸããŠããããšã確èªããŸã (å¿ èŠãªå Žå)ã ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
-p:PublishReadyToRun=trueãã®ããããã£ã䜿çšãããšãReadyToRun ã³ã³ãã€ã«ãæå¹ã«ãªããã¢ã»ã³ããªãããªã³ã³ãã€ã«ããããšã§èµ·åããã©ãŒãã³ã¹ãåäžããŸãã
- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
- åããŠçºè¡ããå Žåã¯ãçºè¡å ãšã㊠[ãã©ã«ããŒ] ãéžæãã[ 次ãž] ãéžæããŸãã
- ãã©ã«ããŒã®å Žæãéžæããããæ¢å®å€ããã®ãŸãŸäœ¿çšããŠã[ å®äº] ãéžæããŸãã
- çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
- å±éã¢ãŒããèªå·±å®çµåãŸãã¯ãã¬ãŒã ã¯ãŒã¯äŸåã«èšå®ããŸãã
- Target Runtime ãç®çã®ãã©ãããã©ãŒã (ããšãã°ã64 ããã Windowsã®å Žå㯠win-x64) ã«èšå®ããŸãã
- [ReadyToRun ã³ã³ãã€ã«ãæå¹ã«ãã] ããªã³ã«ããŸãã
- [ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
ReadyToRun ã®ãããã€ã®è©³çްã«ã€ããŠã¯ãã ReadyToRun ã®ã³ã³ãã€ã«ããåç §ããŠãã ããã
ã³ã³ãããŒã®ãããã€
ã¢ããªãã³ã³ãããŒãšããŠçºè¡ãããšã.NET SDK ã¯ãå¥ã® Dockerfile ãå¿ èŠãšããã«ãã¢ããªã±ãŒã·ã§ã³ãšãã®äŸåé¢ä¿ãã³ã³ãã㌠ã€ã¡ãŒãžã«ããã±ãŒãžåããŸãã ãã®ããã〠ã¢ãŒãã§ã¯ãDocker ã Podman ãªã©ã®ä»»æã®ã³ã³ãã㌠ã©ã³ã¿ã€ã ã§å®è¡ã§ããå®å šãªã³ã³ãã㌠ã€ã¡ãŒãžãäœæãããŸãã ã³ã³ãããŒã®ãããã€ã§ã¯ãDockerfile ãæžã蟌ãã§ä¿å®ããå¿ èŠããªãããªãããæé©åãããåºæ¬ã€ã¡ãŒãžãæäŸããããšã§ãã³ã³ãããŒåããã»ã¹ãç°¡ç¥åãããŸãã
.NET SDK 8.0.200 以éã§ã¯ãã³ã³ãããŒã®ãµããŒãã¯æ¢å®ã§å«ãŸããŠããã远å ã® NuGet ããã±ãŒãžã¯å¿
èŠãããŸããã ã³ã³ãœãŒã« ã¢ããªã±ãŒã·ã§ã³ã®å Žåã¯ã EnableSdkContainerSupport ããããã£ã true ã«èšå®ããŠãã³ã³ãããŒã®ãµããŒããæç€ºçã«æå¹ã«ããå¿
èŠãããå ŽåããããŸãã
ãã³ã
ã³ã³ãããŒã«é¢é£ãããããžã§ã¯ãèšå®ã®è©³çްã«ã€ããŠã¯ãã.NET ã¢ããªã®ã³ã³ããåãªãã¡ã¬ã³ã¹ããåç §ããŠãã ããã
å©ç¹
- ç°¡ç¥åãããã³ã³ãããŒå: åºæ¬çãªã·ããªãªã§ Dockerfile ãèšè¿°ãŸãã¯ä¿å®ããå¿ èŠã¯ãããŸããã
- æé©åãããåºæ¬ã€ã¡ãŒãž: Microsoft ãæäŸããæé©åãããåºæ¬ã€ã¡ãŒãžãšææ°ã®ã»ãã¥ãªãã£æŽæ°ããã°ã©ã ã䜿çšããŸãã
- äžè²«æ§ã®ããç°å¢: éçºããã¹ããéçšå šäœã§äžè²«ããã©ã³ã¿ã€ã ç°å¢ã確ä¿ããŸãã
- ç°¡åãªé åž: ã³ã³ãã㌠ã€ã¡ãŒãžã¯ãããŸããŸãªç°å¢ã§ç°¡åã«å ±æããã³ãããã€ã§ããŸãã
- ãã©ãããã©ãŒã ã®åé¢: ã¢ããªã±ãŒã·ã§ã³ã¯åé¢ãããã³ã³ãããŒã§å®è¡ãããã¢ããªã±ãŒã·ã§ã³éã®ç«¶åã軜æžãããŸãã
æ¬ ç¹
- ã³ã³ãã㌠ã©ã³ã¿ã€ã ã®äŸåé¢ä¿: ã¿ãŒã²ããç°å¢ã«ã¯ã³ã³ãã㌠ã©ã³ã¿ã€ã ãã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸãã
- ã€ã¡ãŒãž ãµã€ãº: ã³ã³ãã㌠ã€ã¡ãŒãžã¯éåžžãä»ã®ãããã€æ¹æ³ããã倧ãããªããŸãã
- åŠç¿æ²ç·: ã³ã³ãããŒã®æŠå¿µãšããŒã«ãçè§£ããå¿ èŠããããŸãã
- å¶éä»ãã«ã¹ã¿ãã€ãº: è€éãªã·ããªãªã§ã¯ãã«ã¹ã¿ã Dockerfile ãšæ¯èŒããŠæè»æ§ãäœããªããŸãã
å ¬éãã
dotnet publish -c Release [-r <RID>] /t:PublishContainer
-c Releaseãã®ã¹ã€ããã¯ããã«ãæ§æããªãªãŒã¹ã«èšå®ããŸããããã¯éçšç°å¢ã®ãããã€çšã«æé©åãããŠããŸãã
-r <RID>ãã®ã¹ã€ããã§ã¯ãã©ã³ã¿ã€ã èå¥å (RID) ã䜿çšããŠã¿ãŒã²ãã ãã©ãããã©ãŒã ãæå®ãããã€ãã£ãã®äŸåé¢ä¿ãå«ãŸããŠããããšã確èªããŸã (å¿ èŠãªå Žå)ã ã©ã³ã¿ã€ã èå¥åã®äžèЧã«ã€ããŠã¯ã ã©ã³ã¿ã€ã èå¥å (RID) ã«ã¿ãã°ãåç §ããŠãã ããã
-t:PublishContainerãã®ã¿ãŒã²ããã¯ãã¢ããªã±ãŒã·ã§ã³ãã³ã³ãã㌠ã€ã¡ãŒãžãšããŠçºè¡ããŸãã
次ã®ããã«çºè¡ãããã¡ã€ã«ã®ã¢ãããŒãã䜿çšããããšãã§ããŸãã
dotnet publish -c Release [-r <RID>] -p:PublishProfile=DefaultContainer
-p:PublishProfile=DefaultContainerãã®ãããã¡ã€ã«ã«ãããã³ã³ãããŒã®çºè¡ããã»ã¹ãããªã¬ãŒãããŸãã
- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãããžã§ã¯ããå³ã¯ãªãã¯ããPublish ãéžæããŸãã
- çºè¡å ãšã㊠[ã³ã³ãã㌠ã¬ãžã¹ã㪠] ãéžæãã[ 次ãž] ãéžæããŸãã
- ã¿ãŒã²ãã ã³ã³ãã㌠ã¬ãžã¹ã㪠(
Azure Container Registry ãDocker HubããŸã㯠Generic Registry ãªã©) ãéžæããNext ãéžæããŸãã - ã¬ãžã¹ããªæ¥ç¶ã®è©³çްãšèªèšŒãæ§æããŸãã
- çºè¡ãããã¡ã€ã«ã§ã[ ãã¹ãŠã®èšå®ã衚瀺] ãéžæããŸãã
- ããŒãºã«å¿ã㊠ãå±éã¢ãŒã ã èªå·±å®çµå ãŸã㯠ãã¬ãŒã ã¯ãŒã¯ã«äŸå ããããã«èšå®ããŸãã
- ã¿ãŒã²ãã ã©ã³ã¿ã€ã ãç®çã®ãã©ãããã©ãŒã (Linux ã³ã³ãããŒã® linux-x64 ãªã©) ã«èšå®ããŸãã
- ã€ã¡ãŒãžåãã¿ã°ãªã©ã®ã³ã³ãããŒåºæã®èšå®ãæ§æããŸãã
- [ ä¿å] ãéžæãã[ çºè¡] ãéžæããŸãã
ã³ã³ãããŒã®ãããã€ã®è©³çްã«ã€ããŠã¯ãã.NET SDK ã³ã³ãããŒã®äœæã®æŠèŠãåç §ããŠãã ããã