CAD ã¢ããªã±ãŒã·ã§ã³ã®ãã©ã°ã€ã³ãéçºããå Žå (
ãã©ã°ã€ã³ã XNUMX ã€ãããªãå ŽåããŸãã¯ãã®åé¡ã«é¢ããŠãŸã ç¬åŠã§åå¿è ã§ããå Žåã¯ããããžã§ã¯ãã®ã³ããŒãäœæãããã®äžã®å¿ èŠãªå Žæãå€æŽããŠãæ°ããããŒãžã§ã³ã®ãã©ã°ã€ã³ãã¢ã»ã³ãã«ããã ãã§ãã ãããã£ãŠããã®åŸã®ã³ãŒãã®å€æŽã«ã¯äººä»¶è²»ã®åå¢ã䌎ããŸãã
çµéšãšç¥èãåŸãã«ã€ããŠããã®ããã»ã¹ãèªååããããã€ãã®æ¹æ³ãèŠã€ããã§ãããã ç§ããã®éãæ©ããŠã¿ãŠãæçµçã«ã©ããªã£ãã®ãããããŠãããã©ãã»ã©äŸ¿å©ãããäŒãããããšæããŸãã
ãŸããç§ãé·å¹Žäœ¿çšããŠããæçœãªæ¹æ³ãèŠãŠã¿ãŸãããã
ãããžã§ã¯ããã¡ã€ã«ãžã®ãªã³ã¯
ãã¹ãŠãã·ã³ãã«ãã€èŠèŠçã«ããããããããããã«ããã©ã°ã€ã³éçºã®æœè±¡çãªäŸã䜿çšããŠãã¹ãŠã説æããŸãã
Visual Studio ãéã㊠(ç§ã¯ Community 2019 ããŒãžã§ã³ãæã£ãŠããŸããã¯ãããã·ã¢èªã§ã)ãæ°ãããœãªã¥ãŒã·ã§ã³ãäœæããŸãããã 圌ã«é»è©±ããŸããã MySuperPluginForRevit
Revit ããŒãžã§ã³ 2015 ïœ 2020 çšã®ãã©ã°ã€ã³ãäœæããäºå®ã§ãã ãããã£ãŠããœãªã¥ãŒã·ã§ã³ (Net Framework ã¯ã©ã¹ ã©ã€ãã©ãª) ã«æ°ãããããžã§ã¯ããäœæãããããåŒã³åºããŸããã MySuperPluginForRevit_2015
Revit API ãžã®ãªã³ã¯ãè¿œå ããå¿ èŠããããŸãã ãã¡ãããããŒã«ã« ãã¡ã€ã«ãžã®ãªã³ã¯ãè¿œå ããããšãã§ããŸã (å¿ èŠãªãã¹ãŠã® SDK ãŸãã¯ãã¹ãŠã®ããŒãžã§ã³ã® Revit ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸã) ããããã«æ£ãããã¹ã«åŸã£ãŠ NuGet ããã±ãŒãžã«æ¥ç¶ããŸãã ããªãã®æ°ã®ããã±ãŒãžãèŠã€ãããŸãããããã§ã¯ç¬èªã®ããã±ãŒãžã䜿çšããŸãã
ããã±ãŒãžãæ¥ç¶ããããé ç®ãå³ã¯ãªãã¯ããŸãããªãã¡ã¬ã³ã¹ããéžæããé ç®ãéžæããŸããPackages.config ã PackageReference ã«ç§»åããŸã...»
ãã®æç¹ã§çªç¶ãããã¯ã«ãªãå§ããå Žåã¯ãããã±ãŒãžã®ãããã㣠ãŠã£ã³ããŠã«éèŠãªé ç®ã衚瀺ãããªãããã§ããããŒã«ã«ã«ã³ããŒãã"ãããã¯å¿ ãå€ã«èšå®ããå¿ èŠããããŸã falseãã®åŸããããã¯ã«ãªããªãã§ãã ããããããžã§ã¯ãã®ãããã©ã«ããŒã«ç§»åãã䟿å©ãªãšãã£ã¿ãŒ (ç§ã¯ Notepad++ ã䜿çšããŠããŸã) 㧠.csproj æ¡åŒµåã®ãã¡ã€ã«ãéããããã§ããã±ãŒãžã«é¢ãããšã³ããªãèŠã€ããŸãã 圌女ã¯ä»ãããªæãã§ãã
<PackageReference Include="ModPlus.Revit.API.2015">
<Version>1.0.0</Version>
</PackageReference>
ããã«ããããã£ãè¿œå ããŸã ã©ã³ã¿ã€ã ã 次ã®ããã«ãªããŸãã
<PackageReference Include="ModPlus.Revit.API.2015">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
ä»åŸã¯ããããžã§ã¯ãããã«ããããšãã«ãããã±ãŒãžã®ãã¡ã€ã«ãåºåãã©ã«ããŒã«ã³ããŒãããªããªããŸãã
ããã«é²ãã§ã¿ãŸãããããã©ã°ã€ã³ã Revit API ã®äœãã䜿çšããããšãããã«æ³åããŠã¿ãŸããããRevit API ã¯ãæ°ããããŒãžã§ã³ããªãªãŒã¹ããããã³ã«å€æŽãããŠããŸããã ãŸãã¯ããã©ã°ã€ã³ãäœæãã Revit ã®ããŒãžã§ã³ã«å¿ããŠãã³ãŒãå
ã®äœããå€æŽããå¿
èŠãããã ãã§ãã ã³ãŒãå
ã®ãã®ãããªéãã解決ããã«ã¯ãæ¡ä»¶ä»ãã³ã³ãã€ã« ã·ã³ãã«ã䜿çšããŸãã ãããžã§ã¯ãã®ããããã£ãéããããã¿ãã«ç§»åããŸãçµç«"ãããŠãã£ãŒã«ãã§"æ¡ä»¶ä»ãã³ã³ãã€ã«ã®è¡šèšæ³"ãããŸããã R2015.
ãã®ã·ã³ãã«ã¯ããããã°æ§æãšãªãªãŒã¹æ§æã®äž¡æ¹ã«è¿œå ããå¿ èŠãããããšã«æ³šæããŠãã ããã
ããŠãããããã£ãŠã£ã³ããŠã«ããéãããã«ããã¿ãã«ç§»åããŸãã¢ããªã±ãŒã·ã§ã³"ãããŠãã£ãŒã«ãã§"ããã©ã«ãã®åå空é» ãµãã£ãã¯ã¹ãåé€ãã _2015ãã®ãããåå空éã¯ãŠãããŒãµã«ã§ãããã¢ã»ã³ããªåã«äŸåããŸããã
ç§ã®å Žåãæçµè£œåã§ã¯ããã¹ãŠã®ããŒãžã§ã³ã®ãã©ã°ã€ã³ã XNUMX ã€ã®ãã©ã«ããŒã«å ¥ãããããããã¢ã»ã³ããªåã«ã¯ãã©ãŒã ã®æ¥å°ŸèŸãä»ãããŸãŸã«ãªããŸãã _20åã ãã ãããã¡ã€ã«ãå¥ã®ãã©ã«ããŒã«é 眮ãããããšãæ³å®ãããŠããå Žåã¯ãã¢ã»ã³ããªåãããµãã£ãã¯ã¹ãåé€ããããšãã§ããŸãã
ãã¡ã€ã«ã³ãŒãã«è¡ããŸããã Class1.cs Revit ã®ããŸããŸãªããŒãžã§ã³ãèæ ®ããŠãããã§ããã€ãã®ã³ãŒããã·ãã¥ã¬ãŒãããŸãã
namespace MySuperPluginForRevit
{
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
[Regeneration(RegenerationOption.Manual)]
[Transaction(TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
#if R2015
TaskDialog.Show("ModPlus", "Hello Revit 2015");
#elif R2016
TaskDialog.Show("ModPlus", "Hello Revit 2016");
#elif R2017
TaskDialog.Show("ModPlus", "Hello Revit 2017");
#elif R2018
TaskDialog.Show("ModPlus", "Hello Revit 2018");
#elif R2019
TaskDialog.Show("ModPlus", "Hello Revit 2019");
#elif R2020
TaskDialog.Show("ModPlus", "Hello Revit 2020");
#endif
return Result.Succeeded;
}
}
}
ç§ã¯ããã«ãããŒãžã§ã³ 2015 ããäžã® Revit ã®ãã¹ãŠã®ããŒãžã§ã³(å·çæç¹ã§å©çšå¯èœã§ãã)ãèæ ®ããåããã³ãã¬ãŒãã䜿çšããŠäœæãããæ¡ä»¶ä»ãã³ã³ãã€ã« ã·ã³ãã«ã®ååšãããã«èæ ®ããŸããã
ã¡ã€ã³ã®ãã€ã©ã€ãã«ç§»ããŸãããã Revit 2016 ã®ãã©ã°ã€ã³ã®ããŒãžã§ã³ã®ã¿ã察象ãšããŠããœãªã¥ãŒã·ã§ã³å ã«æ°ãããããžã§ã¯ããäœæããŸããæ°å€ 2015 ãæ°å€ 2016 ã«çœ®ãæããŠãäžèšã®ãã¹ãŠã®æé ãããããç¹°ãè¿ããŸãã Class1.cs æ°ãããããžã§ã¯ãããåé€ããŸãã
å¿ èŠãªã³ãŒããå«ããã¡ã€ã« - Class1.cs â ãã§ã«ãããæã£ãŠããã®ã§ãæ°ãããããžã§ã¯ãã«ãããžã®ãªã³ã¯ãæ¿å ¥ããã ãã§ãã ãªã³ã¯ãæ¿å ¥ããã«ã¯ XNUMX ã€ã®æ¹æ³ããããŸãã
- é·ã â ãããžã§ã¯ããå³ã¯ãªãã¯ãããå ããã->ãæ¢åã®èŠçŽ "ãéãããŠã£ã³ããŠã§å¿ èŠãªãã¡ã€ã«ãèŠã€ãããªãã·ã§ã³ã®ä»£ããã«"å ããããªãã·ã§ã³ãéžæããŠãã ãããæ¥ç¶ãšããŠè¿œå »
- ã·ã§ãŒã â ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§çŽæ¥ãç®çã®ãã¡ã€ã« (ãŸãã¯ãã¡ã€ã«ããã©ã«ããŒå
šäœ) ãéžæããAlt ããŒãæŒããªãããããæ°ãããããžã§ã¯ãã«ãã©ãã°ããŸãã ãã©ãã°äžã« Alt ããŒãæŒããšãããŠã¹ ã«ãŒãœã«ããã©ã¹èšå·ããç¢å°ã«å€ããããšãããããŸãã
UPDïŒ ãã®æ®µèœã§å°ãæ··ä¹±ããŸãã - è€æ°ã®ãã¡ã€ã«ã転éããã«ã¯ãé·æŒãããå¿ èŠããããŸã Shift + Alt!
æé ãå®è¡ãããšãXNUMXçªç®ã®ãããžã§ã¯ãã«ãã¡ã€ã«ãäœæãããŸã Class1.cs 察å¿ããã¢ã€ã³ã³ (éãç¢å°):
ãšãã£ã¿ãŒ ãŠã£ã³ããŠã§ã³ãŒããç·šéãããšãã«ãã³ãŒãã衚瀺ãããããžã§ã¯ã ã³ã³ããã¹ããéžæããããšãã§ããŸããããã«ãããããŸããŸãªæ¡ä»¶ä»ãã³ã³ãã€ã« ã·ã³ãã«ã®äžã§ç·šéäžã®ã³ãŒãã確èªã§ããããã«ãªããŸãã
ä»ã®ãã¹ãŠã®ãããžã§ã¯ã (2017 幎ãã 2020 幎) ã¯ãã®ã¹ããŒã ã䜿çšããŠäœæãããŸãã ã©ã€ããã㯠- ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒã§ãã¡ã€ã«ãããŒã¹ ãããžã§ã¯ãããã§ã¯ãªããæ¢ã«ãªã³ã¯ãšããŠæ¿å ¥ãããŠãããããžã§ã¯ããããã©ãã°ããå Žåã¯ãAlt ããŒãæŒãç¶ããå¿ èŠã¯ãããŸããã
説æãããŠãããªãã·ã§ã³ã¯ãæ°ããããŒãžã§ã³ã®ãã©ã°ã€ã³ãè¿œå ããç¬éããŸãã¯ãããžã§ã¯ãã«æ°ãããã¡ã€ã«ãè¿œå ããç¬éãŸã§ã¯éåžžã«åªããŠããŸãããããã¯ãã¹ãŠéåžžã«é¢åã«ãªããŸãã ãããŠæè¿ãçªç¶ãXNUMX ã€ã®ãããžã§ã¯ãã§ãã¹ãŠãæŽçããæ¹æ³ã«æ°ã¥ããXNUMX çªç®ã®æ¹æ³ã«ç§»è¡ããŠããŸãã
æ§æã®éæ³
ãããèªã¿çµããããªãã¯ãããã®èšäºã§ã¯ããã« XNUMX çªç®ã®æ¹æ³ã«ã€ããŠèª¬æããŠããã®ã«ããªãæåã®æ¹æ³ã«ã€ããŠèª¬æããã®ã§ãã?!ããšå«ã¶ãããããŸããã ãããŠããªãæ¡ä»¶ä»ãã³ã³ãã€ã« ã·ã³ãã«ãå¿ èŠãªã®ãããããŠãããžã§ã¯ãã®ã©ã®éšåãç°ãªãã®ããæ確ã«ããããã«ãã¹ãŠã説æããŸããã ãããŠä»ãå®è£ ããå¿ èŠããããããžã§ã¯ãã®éããæ£ç¢ºã«æ確ã«ãªããæ®ãã®ãããžã§ã¯ã㯠XNUMX ã€ã ãã«ãªããŸãã
ãããŠããã¹ãŠãããæ確ã«ããããã«ãæ°ãããããžã§ã¯ããäœæããã®ã§ã¯ãªããæåã®æ¹æ³ã§äœæããçŸåšã®ãããžã§ã¯ãã«å€æŽãå ããŸãã
ãããã£ãŠããŸãæåã«ãã¡ã€ã³ ãããžã§ã¯ã (ãã¡ã€ã«ãçŽæ¥å«ãŸããŠãããããžã§ã¯ã) ãé€ããã¹ãŠã®ãããžã§ã¯ãããœãªã¥ãŒã·ã§ã³ããåé€ããŸãã ãããã®ã ããŒãžã§ã³ 2016 ïœ 2020 ã®ãããžã§ã¯ãã ãœãªã¥ãŒã·ã§ã³ãå«ãŸãããã©ã«ããŒãéããããã«ãããããã®ãããžã§ã¯ãã®ãã©ã«ããŒãåé€ããŸãã
ç§ãã¡ã®æ±ºå®ã«ã¯ XNUMX ã€ã®ãããžã§ã¯ããæ®ã£ãŠããŸã - MySuperPluginForRevit_2015ã ãã®ããããã£ãéãã次ã®æäœãè¡ããŸãã
- ã¿ããã¢ããªã±ãŒã·ã§ã³"ã¢ã»ã³ããªåãããµãã£ãã¯ã¹ãåé€ããŸã _2015 ïŒçç±ã¯åŸã»ã©æããã«ãªãïŒ
- ã¿ããçµç«Â» æ¡ä»¶ä»ãã³ã³ãã€ã«ã®ã·ã³ãã«ãåé€ããŸãã R2015 察å¿ãããã£ãŒã«ããã
泚: Visual Studio ã®ææ°ããŒãžã§ã³ã«ã¯ãã°ããããŸããæ¡ä»¶ä»ãã³ã³ãã€ã« ã·ã³ãã«ã¯å©çšå¯èœã§ãã£ãŠãããããžã§ã¯ã ãããã㣠ãŠã£ã³ããŠã«è¡šç€ºãããŸããã ãã®åé¡ãçºçããå Žåã¯ã.csproj ãã¡ã€ã«ããæåã§ããããåé€ããå¿ èŠããããŸãã ãã ãããŸã åãçµãå¿ èŠãããã®ã§ãèªã¿ç¶ããŠãã ããã
ãœãªã¥ãŒã·ã§ã³ ãšã¯ã¹ãããŒã©ãŒ ãŠã£ã³ããŠã§ãµãã£ãã¯ã¹ãåé€ããŠãããžã§ã¯ãã®ååãå€æŽããŸãã _2015 次ã«ããããžã§ã¯ãããœãªã¥ãŒã·ã§ã³ããåé€ããŸãã ããã¯å®ç§äž»çŸ©è ã®ç§©åºãšææ ãç¶æããããã«å¿ èŠã§ãã ãœãªã¥ãŒã·ã§ã³ã®ãã©ã«ããŒãéããåãæ¹æ³ã§ããã«ãããããžã§ã¯ã ãã©ã«ããŒã®ååãå€æŽãããããžã§ã¯ãããœãªã¥ãŒã·ã§ã³ã«å床èªã¿èŸŒã¿ãŸãã
æ§æãããŒãžã£ãŒãéããŸãã ç±³åœæ§æ ãªãªãŒã¹ ååçã«ã¯äžèŠã§ãã®ã§åé€ãããŠããã ããŸãã ãã§ã«éŠŽæã¿ã®ããååã§æ°ããæ§æãäœæããŸã R2015, R2016ã... R2020ã ä»ã®æ§æããèšå®ãã³ããŒããå¿ èŠã¯ãªãããããžã§ã¯ãæ§æãäœæããå¿ èŠããªãããšã«æ³šæããŠãã ããã
ãããžã§ã¯ããå«ãŸãããã©ã«ããŒã«ç§»åãã䜿ãããããšãã£ã¿ãŒã§ .csproj æ¡åŒµåã®ä»ãããã¡ã€ã«ãéããŸãã ã¡ãªã¿ã«ãVisual Studio ã§éãããšãã§ããŸãããããžã§ã¯ããã¢ã³ããŒããããšãç®çã®é ç®ãã³ã³ããã¹ã ã¡ãã¥ãŒã«è¡šç€ºãããŸãã
ãšãã£ã¿ãŒã調æŽãšããã³ããã®äž¡æ¹ãæäŸãããããVisual Studio ã§ç·šéããããšããå§ãããŸãã
ãã¡ã€ã«ã«ã¯èŠçŽ ã衚瀺ãããŸã
å ±éã® (æåã®) èŠçŽ ã«ç§»åããŸã ããããã£ã°ã«ãŒã ãããŠç©ä»¶ãèŠãŠã¿ããš ã¢ã»ã³ããªå â ããã¯ã¢ã»ã³ããªã®ååã§ããããµãã£ãã¯ã¹ãä»ããªãã§ãã ããã _2015ã ãµãã£ãã¯ã¹ãããå Žåã¯ããããåé€ããŸãã
æ¡ä»¶ä»ãã®èŠçŽ ã®æ€çŽ¢
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
å¿ èŠãªãã®ã§åé€ããŸãã
æ¡ä»¶ä»ãèŠçŽ
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
ã³ãŒãéçºãšãããã°ã®æ®µéã§äœæ¥ããããã«å¿ èŠã«ãªããŸãã ããŒãºã«åãããŠããããã£ãå€æŽã§ããŸããå¥ã®åºåãã¹ãèšå®ããããæ¡ä»¶ä»ãã³ã³ãã€ã« ã·ã³ãã«ãå€æŽãããã§ããŸãã
æ°ããèŠçŽ ãäœæããŸããã ããããã£ã°ã«ãŒã ç§ãã¡ã®æ§æã§ã¯ã ãããã®èŠçŽ ã§ã¯ã次㮠XNUMX ã€ã®ããããã£ãèšå®ããã ãã§ãã
- åºåãã¹ - åºåãã©ã«ãã ããã©ã«ãå€ãèšå®ããŸãã ãã³R20xx
- å®æ°ã®å®çŸ© â æ¡ä»¶ä»ãã³ã³ãã€ã«ã®ã·ã³ãã«ã å€ãæå®ããå¿ èŠããããŸã ãã¬ãŒã¹;R20Ñ Ñ
- ã¿ãŒã²ãããã¬ãŒã ã¯ãŒã¯ã®ããŒãžã§ã³ â ãã©ãããã©ãŒã ã®ããŒãžã§ã³ã Revit API ã®ããŒãžã§ã³ãç°ãªããšãç°ãªããã©ãããã©ãŒã ãæå®ããå¿ èŠããããŸãã
- ã¢ã»ã³ããªå â ã¢ã»ã³ããªå (ã€ãŸãããã¡ã€ã«å)ã ã¢ã»ã³ããªã®æ£ç¢ºãªååãèšè¿°ããããšãã§ããŸãããæ±çšæ§ãèæ ®ããŠå€ãèšè¿°ããããšããå§ãããŸãã $(ã¢ã»ã³ããªå)_20Ñ Ñ ã ãããè¡ãããã«ã以åã«ã¢ã»ã³ããªåããæ¥å°ŸèŸãåé€ããŸããã
ããããã¹ãŠã®èŠçŽ ã®æãéèŠãªç¹åŸŽã¯ããŸã£ããå€æŽããã«ä»ã®ãããžã§ã¯ãã«ç°¡åã«ã³ããŒã§ããããšã§ãã ãã®èšäºã®åŸåã§ã.csproj ãã¡ã€ã«ã®ãã¹ãŠã®å 容ãæ·»ä»ããŸãã
ããŠããããžã§ã¯ãã®ããããã£ãç解ããŸãããããã¯é£ããããšã§ã¯ãããŸããã ãããããã©ã°ã€ã³ ã©ã€ãã©ãª (NuGet ããã±ãŒãž) ãã©ããããã ããã«èŠãŠã¿ããšãå«ãŸããŠããã©ã€ãã©ãªãèŠçŽ ã§æå®ãããŠããããšãããããŸãã
å
çŽ ãç§ãã¡ãå©ããŠããã
èŠçŽ ã®äœ¿çš éžæãããç°ãªãæ§æã«å¯ŸããŠç°ãªã NuGet ããã±ãŒãžãèšå®ããŸãã
ãã¹ãŠã®ã³ã³ãã³ã csproj
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5AD738D6-4122-4E76-B865-BE7CE0F6B3EB}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MySuperPluginForRevit</RootNamespace>
<AssemblyName>MySuperPluginForRevit</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>binDebug</OutputPath>
<DefineConstants>DEBUG;R2015</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2015|AnyCPU' ">
<OutputPath>binR2015</OutputPath>
<DefineConstants>TRACE;R2015</DefineConstants>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<AssemblyName>$(AssemblyName)_2015</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2016|AnyCPU' ">
<OutputPath>binR2016</OutputPath>
<DefineConstants>TRACE;R2016</DefineConstants>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<AssemblyName>$(AssemblyName)_2016</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2017|AnyCPU' ">
<OutputPath>binR2017</OutputPath>
<DefineConstants>TRACE;R2017</DefineConstants>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<AssemblyName>$(AssemblyName)_2017</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2018|AnyCPU' ">
<OutputPath>binR2018</OutputPath>
<DefineConstants>TRACE;R2018</DefineConstants>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<AssemblyName>$(AssemblyName)_2018</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2019|AnyCPU' ">
<OutputPath>binR2019</OutputPath>
<DefineConstants>TRACE;R2019</DefineConstants>
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<AssemblyName>$(AssemblyName)_2019</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2020|AnyCPU' ">
<OutputPath>binR2020</OutputPath>
<DefineConstants>TRACE;R2020</DefineConstants>
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<AssemblyName>$(AssemblyName)_2020</AssemblyName>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="PropertiesAssemblyInfo.cs" />
</ItemGroup>
<Choose>
<When Condition=" '$(Configuration)'=='R2015' ">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2015">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='R2016' ">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2016">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='R2017' ">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2017">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='R2018' ">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2018">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='R2019' ">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2019">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='R2020' or '$(Configuration)'=='Debug'">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2020">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
</When>
</Choose>
<Import Project="$(MSBuildToolsPath)Microsoft.CSharp.targets" />
</Project>
æ¡ä»¶ã® XNUMX ã€ã§ XNUMX ã€ã®æ§æãæå®ããããšã«æ³šæããŠãã ããã ãŸãã¯ã ãã®ããã«ããŠãæ§æäžã«å¿ èŠãªããã±ãŒãžãæ¥ç¶ãããŸãã ãããã°.
ãããŠããã§ã¯ã»ãŒãã¹ãŠãå®ç§ã§ãã ãããžã§ã¯ããããŒãããŠæ»ããå¿ èŠãªæ§æãæå¹ã«ãããœãªã¥ãŒã·ã§ã³ (ãããžã§ã¯ãã§ã¯ãªã) ã®ã³ã³ããã¹ã ã¡ãã¥ãŒã§é ç®ãããåŒã³åºããŸãããã¹ãŠã® NuGet ããã±ãŒãžã埩å ããããããŠããã±ãŒãžãã©ã®ããã«å€åããããããããŸãã
ãããŠããã®æ®µéã§è¡ãè©°ãŸããŸããããã¹ãŠã®æ§æãäžåºŠã«åéããã«ã¯ããããã¢ã»ã³ããªïŒã¡ãã¥ãŒããïŒã䜿çšã§ããŸããçµç«ã->ãããããã«ã")ããã ããæ§æãåãæ¿ããå Žåãããã±ãŒãžã¯èªåçã«ã¯åŸ©å ãããŸããã ãããŠããããžã§ã¯ããçµã¿ç«ãŠããšããçè«çã«ã¯ãããªãã¯ãã§ããããããèµ·ãããŸããã æšæºçãªæ段ã䜿çšããŠãã®åé¡ã解決ããæ¹æ³ã¯èŠã€ãããŸããã§ããã ãããŠãããããããã Visual Studio ã®ãã°ã§ãã
ããã§ããããçµç«ã«ã¯ç¹å¥ãªèªåçµç«ã·ã¹ãã ã䜿çšããããšã«ããŸããã
ãããã£ãŠããœãªã¥ãŒã·ã§ã³ã®ãã©ã«ã㌠(ãããžã§ã¯ãã§ã¯ãªã) ã«ç§»åããããŒãæŒãããŸãŸã«ããŸãã ã·ãã ãã©ã«ããŒå ã®ç©ºãã¹ããŒã¹ãå³ã¯ãªãã¯ããã³ã³ããã¹ã ã¡ãã¥ãŒã§é ç®ãããéžæããŸããããã§PowerShellãŠã£ã³ããŠãéããŸã'ã
ã€ã³ã¹ããŒã«ãããŠããªãå Žå æ žå µåšã次ã«æåã«ã³ãã³ããæžããŸã
dotnet tool install Nuke.GlobalTool âglobal
次ã«ã³ãã³ããæžããŸã æ žå µåš èšå®ãæ±ããããã³ããã衚瀺ãããŸã æ žå µåš çŸåšã®ãããžã§ã¯ãã®å Žåã ããããã·ã¢èªã§ããæ£ç¢ºã«æžãæ¹æ³ãããããŸãããè±èªã§ã¯ãã.nuke ãã¡ã€ã«ãèŠã€ãããŸããã§ããããšæžãããŸãã ãã«ããã»ããã¢ããããŸãã? [ã¯ã/ããã]
Y ããŒãæŒããšãçŽæ¥èšå®é ç®ã衚瀺ãããŸãã 次ã䜿çšããæãåçŽãªãªãã·ã§ã³ãå¿ èŠã§ã MSBuild, ãããã£ãŠãã¹ã¯ãªãŒã³ã·ã§ããã®ããã«çããŸãã
Visual Studio ã«ç§»åããŸããããæ°ãããããžã§ã¯ãããœãªã¥ãŒã·ã§ã³ã«è¿œå ãããŠããããããœãªã¥ãŒã·ã§ã³ãåèªã¿èŸŒã¿ããããã«æ±ããããŸãã ãœãªã¥ãŒã·ã§ã³ããªããŒããããšããããžã§ã¯ããããããšãããããŸãã ãã«ã ãã®äžã§ç§ãã¡ãèå³ãããã®ã¯ XNUMX ã€ã®ãã¡ã€ã«ã ãã§ã - Build.cs
ãã®ãã¡ã€ã«ãéããŠããã¹ãŠã®æ§æã®ãããžã§ã¯ãããã«ãããã¹ã¯ãªãããäœæããŸãã ãŸãã¯ãããŒãºã«åãããŠç·šéã§ããç§ã®ã¹ã¯ãªããã䜿çšããŠãã ããã
using System.IO;
using Nuke.Common;
using Nuke.Common.Execution;
using Nuke.Common.ProjectModel;
using Nuke.Common.Tools.MSBuild;
using static Nuke.Common.Tools.MSBuild.MSBuildTasks;
[CheckBuildProjectConfigurations]
[UnsetVisualStudioEnvironmentVariables]
class Build : NukeBuild
{
public static int Main () => Execute<Build>(x => x.Compile);
[Solution] readonly Solution Solution;
// If the solution name and the project (plugin) name are different, then indicate the project (plugin) name here
string PluginName => Solution.Name;
Target Compile => _ => _
.Executes(() =>
{
var project = Solution.GetProject(PluginName);
if (project == null)
throw new FileNotFoundException("Not found!");
var build = new List<string>();
foreach (var (_, c) in project.Configurations)
{
var configuration = c.Split("|")[0];
if (configuration == "Debug" || build.Contains(configuration))
continue;
Logger.Normal($"Configuration: {configuration}");
build.Add(configuration);
MSBuild(_ => _
.SetProjectFile(project.Path)
.SetConfiguration(configuration)
.SetTargets("Restore"));
MSBuild(_ => _
.SetProjectFile(project.Path)
.SetConfiguration(configuration)
.SetTargets("Rebuild"));
}
});
}
PowerShell ãŠã£ã³ããŠã«æ»ããã³ãã³ããå床èšè¿°ããŸãã æ žå µåš (ã³ãã³ããæžãããšãã§ããŸã) æ žå µåš å¿ é ã§ããããšã瀺ã ã¿ãŒã²ããã ããããç§ãã¡ã«ã¯XNUMXã€ãããŸã ã¿ãŒã²ãããããã©ã«ãã§å®è¡ãããŸãïŒã Enter ããŒãæŒããšãæ ç»ã®ããã«ãããžã§ã¯ããããŸããŸãªæ§æã«åãããŠèªåçã«çµã¿ç«ãŠããããããæ¬ç©ã®ããã«ãŒã«ãªã£ããããªæ°åã«ãªããŸãã
ã¡ãªã¿ã«ãVisual Studio ãã PowerShell ãçŽæ¥äœ¿çšããããšãã§ããŸã (ã¡ãã¥ãŒããã¥ãŒã->ããã®ä»ã®çªå£ã->ãããã±ãŒãžãããŒãžã£ãŒã³ã³ãœãŒã«") ãããããã¹ãŠãçœé»ã«ãªããããããŸã䟿å©ã§ã¯ãããŸããã
ããã§ç§ã®èšäºã¯çµãããŸãã AutoCAD ã®ãªãã·ã§ã³ããèªèº«ã§èŠã€ãããããšæããŸãã ããã§çŽ¹ä»ããè³æãã顧客ããèŠã€ããããšãé¡ã£ãŠããŸãã
ããããšãããããŸããïŒ
åºæïŒ habr.com