ืืืขื ืืขืืืขืืึธืคึผืื ื ืคึผืืืืื ืก ืคึฟืึทืจ CAD ืึทืคึผืืึทืงืืืฉืึทื ื (
ืืืขื ืืืจ ืืึธืื ืืืืื ืืืื ืคึผืืืืื ืึธืืขืจ ืืืจ ืืขื ื ื ืึธื ืึท ืืื-ืืขืืขืจื ื ืึธื ืืืืืขืจ ืืื ืืขื ืขื ืื, ืืืจ ืงืขื ืขื ืคืฉืื ืืึทืื ืึท ืงืึธืคึผืืข ืคืื โโืื ืคึผืจืืืขืงื, ืืืืฉื ืื ื ืืืืืง ืขืจืืขืจ ืืื ืขืก ืืื ืึทืกืขืืืึทื ืึท ื ืืึทืข ืืืขืจืกืืข ืคืื โโืื ืคึผืืืืื. ืึทืงืงืึธืจืืื ืืื, ืกืึทืืกืึทืงืืืึทื ื ืขื ืืขืจืื ืืขื ืฆื ืื ืงืึธื ืืืขื ืึทืจืืึทื ืฆืืขื ืึท ืงืืืคื ืคืึทืจืืจืขืกืขืจื ืืื ืึทืจืืขื ืงืึธืก.
ืืืขื ืืืจ ืืึทืงืืืขื ืืขืจืคืึทืจืื ื ืืื ืืืืกื, ืืืจ ืืืขื ืืขืคึฟืื ืขื ืขืืืขืืข ืืืขืื ืฆื ืึธืืึทืืืื ืืขื ืคึผืจืึธืฆืขืก. ืืื ืืขืืื ืืขื ืืขื ืืืขื ืืื ืืื ืืืืื ืฆื ืืึธืื ืืืจ ืืืึธืก ืืื ืขื ืืืงื ืืื ืืื ืืื ืืื ืืึทืงืืืขื ืขืก ืืื.
ืขืจืฉืืขืจ, ืืึธืืืจ ืงืืงื ืืื ืึท ืืืคึฟื ืืืึธืก ืืื ืงืืึธืจ ืืื ืืขืจ ืืึธื ืืื ืืืึธืก ืืื ืืึธืื ืืขื ืืฆื ืคึฟืึทืจ ืึท ืืึทื ื ืฆืืึทื.
ืืื ืงืก ืฆื ืคึผืจืืืขืงื ืืขืงืขืก
ืืื ืฆื ืืึทืื ืึทืืฅ ืคึผืฉืื, ืืืืืฉืึทืืืึทื ืืื ืคืึทืจืฉืืืืืง, ืืื ืืืขื ืืึทืฉืจืืึทืื ืึทืืฅ ืืื ืึทื ืึทืืกืืจืึทืงื ืืืึทืฉืคึผืื ืคืื ืคึผืืืืื ืึทื ืืืืืงืืื ื.
ืืึธืืืจ ืขืคึฟืขื ืขื ืืืืกืืึทื ืกืืืืืึธ (ืืื ืืึธืื ืื ืงืึทืืืื ืืื 2019 ืืืขืจืกืืข. ืืื ืืึธ - ืืืืฃ ืจืืกืืฉ) ืืื ืฉืึทืคึฟื ืึท ื ืืึทืข ืืืืืื ื. ืืึธืืืจ ืืื ืจืืคื MySuperPluginForRevit
ืืืจ ืืืขืื ืืึทืื ืึท ืคึผืืืืื ืคึฟืึทืจ Revit ืคึฟืึทืจ ืืืขืจืกืืขืก 2015-2020. ืืขืจืืืขืจ, ืืึธืื ืืื ืื ืฉืึทืคึฟื ืึท ื ืืึทืข ืคึผืจืืืขืงื ืืื ืืขืจ ืืืืืื ื (ื ืขื ืคืจืึทืืขืืืึธืจืง ืงืืึทืก ืืืืืืึธืืขืง) ืืื ืจืืคื ืขืก MySuperPluginForRevit_2015
ืืืจ ืืึทืจืคึฟื ืฆื ืืืืื ืืื ืงืก ืฆื ืื Revit API. ืคืื ืงืืจืก, ืืืจ ืงืขื ืขื ืืืืื ืืื ืงืก ืฆื ืืืืข ืืขืงืขืก (ืืืจ ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืึทืืข ืื ื ืืืืืง SDKs ืึธืืขืจ ืึทืืข ืืืขืจืกืืขืก ืคืื Revit), ืึธืืขืจ ืืืจ ืืืขืื ืืืืื ื ืึธืืืืื ืื ืจืขืื ืืืขื ืืื ืคืึทืจืืื ืื ืื NuGet ืคึผืขืงื. ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืืึทื ืฅ ืึท ืืืกื ืคึผืึทืงืึทืืืฉืึทื, ืึธืืขืจ ืืื ืืืขื ื ืืฆื ืืืื ืืืืืขื ืข.
ื ืึธื ืงืึทื ืขืงืืื ื ืืขื ืคึผืขืงื, ืจืขืื ืืื ืืืืฃ ืื ื ืืืขืจ "ืจืขืคึฟืขืจืขื ืฆื"ืืื ืกืขืืขืงืืืจื ืืขื ื ืืืขืจ"ืืึทื packages.config ืฆื PackageReference ...ยป
ืืืื ืคึผืืืฆืืื ื ืืื ืืขื ืคืื ื ืืืจ ืึธื ืืืืื ืฆื ืคึผืึทื ืืง, ืืืืึทื ืืื ืื ืคึผืขืงื ืคึผืจืึธืคึผืขืจืืืขืก ืคึฟืขื ืฆืืขืจ ืขืก ืืืขื ืืืื ืงืืื ืืืืืืืง ื ืืืขืจ "ืงืึธืคึผืืข ืืึธืืงืึทืื", ืืืึธืก ืืืจ ืืืฉืืืื ืืึทืจืคึฟื ืฆื ืฉืืขืื ืื ืืืขืจื ืคืึทืืฉ, ืืขืืึธืื ืืึธื ื ืื ืคึผืึทื ืืง - ืืืื ืฆื ืื ืืขืงืข ืืื ืื ืคึผืจืืืขืงื, ืขืคึฟืขื ืขื ืื ืืขืงืข ืืื ืื .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 ืคึฟืึทืจ ืืืึธืก ืืืจ ืืึทืื ืืขื ืคึผืืืืื. ืฆื ืกืึธืืืืข ืึทืืึท ืืืคืขืจืึทื ืกืื ืืื ืงืึธื, ืืืจ ืืืขืื ื ืืฆื ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธืืก. ืขืคึฟืขื ืขื ืื ืคึผืจืึธืืขืงื ืคึผืจืึธืคึผืขืจืืืขืก, ืืืื ืฆื ืื "Assembly"ืืื ืืื ืื ืคืขืื"ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ื ืึธืืืืืฉืึทืืดืืืืืจ ืฉืจืืืื ืจืงืกื ืืืงืก.
ืืึทืืขืจืงืื ื ืึทื ืืขืจ ืกืืืืึธื ืืืื ืืืื ืืืกืืฃ ืคึฟืึทืจ ืืืืืข ืืืืื ืืื ืืขืืืื ื ืงืึทื ืคืืืืขืจืืืฉืึทื ื.
ื ื, ืืฉืขืช ืืืจ ืืขื ืขื ืืื ืื ืคึผืจืึธืคึผืขืจืืืขืก ืคึฟืขื ืฆืืขืจ, ืืืจ ืืื ืืืื ืฆื ืื " ืงืืืืืืึทืคึผืืึทืงืืืฉืึทื"ืืื ืืื ืื ืคืขืื"ืคืขืืืงืืึทื ื ืึธืืขื ืกืคึผืืืกยป ืึทืจืึธืคึผื ืขืืขื ืื ืกืึทืคืืงืก _ืงืกื ืืืงืกืึทืืื ืึทื ืืื ืืืขืจ ื ืึทืืขืกืคึผืึทืกืข ืืื ืื ืืืืขืจืกืึทื ืืื ืคืจืืึท ืคืื ืื ืคึฟืึทืจืืึทืืืื ื ื ืึธืืขื:
ืืื ืืืื ืคืึทื, ืืื ืื ืืขืฆื ืคึผืจืึธืืืงื, ืคึผืืืืื ืก ืคืื ืึทืืข ืืืขืจืกืืขืก ืืขื ืขื ืฉืืขืื ืืื ืืืื ืืขืงืข, ืึทืืื ืืืื ืคึฟืึทืจืืึทืืืื ื ื ืขืืขื ืืืืืื ืืื ืื ืกืึทืคืืงืก ืคืื ืื ืคืึธืจืขื _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;
}
}
}
ืืื ืืึธื ืืืืื ืืขื ืืืขื ืืื ืืฉืืื ืึทืืข ืืืขืจืกืืขืก ืคืื Revit ืืืืื ืืืขืจืกืืข 2015 (ืืืึธืก ืืขื ืขื ืืขืืืขื ืื ืืืฆื ืืื ืืขืจ ืฆืืื ืคืื ืฉืจืืืื) ืืื ืืืืื ืืขื ืืืขื ืืื ืืฉืืื ืื ืืืึทืืืึทื ืคืื ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธืืก, ืืืึธืก ืืขื ืขื ืืืฉืืคื ืืื ืืขืจ ืืขืืืืงืขืจ ืืืกืืขืจ.
ืืื ืก ืืึทื ืืืืฃ ืฆื ืื ืืืืคึผื ืืืืืคึผืื ืงื. ืืืจ ืฉืึทืคึฟื ืึท ื ืืึทืข ืคึผืจืืืขืงื ืืื ืืื ืืืขืจ ืืืืืื ื, ืืืืื ืคึฟืึทืจ ืื ืืืขืจืกืืข ืคืื โโโโืื ืคึผืืืืื ืคึฟืึทืจ Revit 2016. ืืืจ ืืืืขืจืืืจื ืึทืืข ืื ืกืืขืคึผืก ืืืกืงืจืืืื ืืืืื, ืจืืกืคึผืขืงืืืืืื, ืจืืคึผืืืืกืื ื ืื ื ืืืขืจ 2015 ืืื ืื ื ืืืขืจ 2016. Class1.cs ืืืกืืขืงื ืคืื ืื ื ืืึทืข ืคึผืจืืืขืงื.
ืืขืงืข ืืื ืื ืคืืจืืื ืื ืงืึธื - Class1.cs - ืืืจ ืืึธืื ืขืก ืฉืืื ืืื ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืึทืจืืึทื ืืืืื ืึท ืืื ืง ืฆื ืขืก ืืื ืึท ื ืืึทืข ืคึผืจืืืขืงื. ืขืก ืืขื ืขื ืฆืืืื ืืืขืื ืฆื ืึทืจืืึทื ืืืืื ืืื ืงืก:
- ืืื ื - ืจืขืื ืืื ืืืืฃ ืื ืคึผืจืืืขืงื ืืื ืกืขืืขืงืืืจื "ืืืืืยป->ยซืืืืืกืืื ื ืขืืขืืขื ื", ืืื ืื ืคึฟืขื ืฆืืขืจ ืืืึธืก ืขืคืขื ืขื, ืืขืคึฟืื ืขื ืื ืคืืจืืื ืื ืืขืงืข ืืื ืึทื ืฉืืึธื ืคืื ืื ืึธืคึผืฆืืข "ืืืืื"ืกืขืืขืงืืืจื ืื ืึธืคึผืฆืืข"ืืืื ืืื ืงืฉืจยป
- ืงืืจืฅ - ืืืืื ืืื ืื ืืืืืื ื Explorer, ืกืขืืขืงืืืจื ืื ืืขืืขืื ืืขืงืข (ืึธืืขืจ ืืคืืื ืืขืงืขืก, ืึธืืขืจ ืืคืืื ืืึทื ืฅ ืคืึธืืืขืจืก) ืืื ืฉืืขืคึผื ืขืก ืืื ืึท ื ืืึทืข ืคึผืจืืืขืงื ืืฉืขืช ืืืจ ืืึทืืื ืื ืึทืื ืฉืืืกื. ืืืขื ืืืจ ืฉืืขืคึผื, ืืืจ ืืืขื ืืขื ืึทื ืืืขื ืืืจ ืืจืืงื ืื ืึทืื ืฉืืืกื, ืื ืืืื ืืืืคึฟืขืจ ืืืขื ืืืืฉื ืคืื ืึท ืคึผืืืก ืฆืืืื ืฆื ืึท ืคืืึทื.
UPD: ืืื ืืขืืืื ืึท ืืืกื ืฆืขืืืฉืื ื ืืื ืืขื ืคึผืึทืจืึทืืจืึทืฃ - ืฆื ืึทืจืืืขืจืคืืจื ืขืืืขืืข ืืขืงืขืก ืืืจ ืืึธื ืืึทืืื ืึทืจืึธืคึผ ืืืขืจืจืืง + ืึทืื!
ื ืึธื ืืืจืืคืืจื ืืขื ืคึผืจืึธืฆืขืืืจ, ืืืจ ืืืขืื ืืึธืื ืึท ืืขืงืข ืืื ืื ืจืืข ืคึผืจืืืขืงื Class1.cs ืืื ืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืืืืื (ืืืื ืคืืึทื):
ืืืขื ืขืืืืื ื ืงืึธื ืืื ืื ืจืขืืึทืงืืึธืจ ืคึฟืขื ืฆืืขืจ, ืืืจ ืงืขื ืขื ืืืื ืงืืืึทืื ืืืึธืก ืคึผืจืืืขืงื ืงืึธื ืืขืงืกื ืฆื ืืืืึทืื ืื ืงืึธื ืืื, ืืืึธืก ืืืขื ืืึธืื ืืืจ ืฆื ืืขื ืื ืงืึธื ืขืืืืื ืืื ืืขืจ ืคืึทืจืฉืืืขื ืข ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธืืก:
ืืืจ ืืึทืื ืึทืืข ืื ืืขืจืข ืคึผืจืึทืืืฉืขืงืก (2017-2020) ื ืืฆื ืืขื ืกืืขืืข. ืืขืื ืืึทืง - ืืืื ืืืจ ืฉืืขืคึผื ืืขืงืขืก ืืื ืื ืืืืืื ื Explorer ื ืื ืคึฟืื ืื ืืึทืืข ืคึผืจืืืขืงื, ืึธืืขืจ ืคึฟืื ืื ืคึผืจืืืขืงื ืืื ืืื ืืขื ืขื ืฉืืื ืื ืกืขืจืืึทื ืืื ืึท ืืื ืง, ืืืจ ืืึธื ื ืื ืืึธืื ืฆื ืืึทืืื ืื ืึทืื ืฉืืืกื!
ืื ืืืกืงืจืืืื ืึธืคึผืฆืืข ืืื ืืึทื ืฅ ืืื ืืื ืืขื ืืึธืืขื ื ืคืื ืึทืืื ื ืึท ื ืืึทืข ืืืขืจืกืืข ืคืื โโืื ืคึผืืืืื ืึธืืขืจ ืืื ืืขื ืืึธืืขื ื ืคืื ืึทืืื ื ื ืืึท ืืขืงืขืก ืฆื ืื ืคึผืจืืืขืงื - ืึทืืข ืืขื ืืืขืจื ืืืืขืจ ืืืืืึทืก. ืืื ืืขืฆืื ืก ืืื ืคึผืืืฆืืื ื ืืืื ืืขืืขื ืืื ืฆื ืกืึธืจื ืขืก ืึทืืข ืืืืก ืืื ืืืื ืคึผืจืืืขืงื ืืื ืืืจ ืืึทื ืืืืฃ ืฆื ืื ืจืืข ืืืคึฟื
ืื ืืึทืืืฉ ืคืื ืงืึทื ืคืืืืขืจืืืฉืึทื ื
ื ืึธื ืืืืขื ืขื ืืึธ, ืืืจ ืงืขื ืืืืกืจืืคื, "ืคืืจืืืืก ืืื ืืืจ ืืึทืฉืจืืึทืื ืื ืขืจืฉืืขืจ ืืืคึฟื, ืืืื ืืขืจ ืึทืจืืืงื ืืื ืืื ืืืขืื ืืขืจ ืฆืืืืืืขืจ?!" ืืื ืืื ืืืกืงืจืืืื ืึทืืฅ ืฆื ืืึทืื ืขืก ืงืืึธืจ ืืืึธืก ืืืจ ืืึทืจืคึฟื ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธืืก ืืื ืืื ืืืึธืก ืขืจืืขืจ ืืื ืืืขืจ ืคึผืจืึทืืืฉืขืงืก ืึทื ืืขืจืฉ. ืืื ืืืฆื ืขืก ืืืขืจื ืงืืึธืจ ืคึฟืึทืจ ืืื ืื ืคึผืื ืงื ืืืึธืก ืืืคืขืจืึทื ืกืื ืืื ืคึผืจืึทืืืฉืขืงืก ืืืจ ืืึทืจืคึฟื ืฆื ืื ืกืืจืืืขื ื, ืืขืืืื ืืืืื ืืืื ืคึผืจืืืขืงื.
ืืื ืฆื ืืึทืื ืึทืืฅ ืืขืจ ืงืืึธืจ ืืื ืืขืจ ืืึธื, ืืืจ ืืืขืื ื ืืฉื ืืึทืื ืึท ื ืืึท ืคึผืจืืืขืงื, ืึธืืขืจ ืืืขื ืืึทืื ืขื ืืขืจืื ืืขื ืฆื ืืื ืืืขืจ ืงืจืึทื ื ืคึผืจืืืขืงื ืืืฉืืคื ืืื ืืขืจ ืขืจืฉืืขืจ ืืืขื.
ืึทืืื, ืขืจืฉืืขืจ ืคืื ืึทืืข, ืืืจ ืืึทืืืึทืืืงื ืึทืืข ืคึผืจืึทืืืฉืขืงืก ืคืื ืื ืืืืืื ื ืึทืืืฅ ืื ืืืืคึผื (ืืื ืื ืืขืงืขืก ืืืืึทื). ืืขื ืข. ืคึผืจืึทืืืฉืขืงืก ืคึฟืึทืจ ืืืขืจืกืืขืก 2016-2020. ืขืคึฟืขื ืขื ืื ืืขืงืข ืืื ืื ืืืืืื ื ืืื ืืืกืืขืงื ืื ืคืึธืืืขืจืก ืคืื ืื ืคึผืจืึทืืืฉืขืงืก ืืึธืจื.
ืืืจ ืืึธืื ืืืื ืคึผืจืืืขืงื ืืื ืงืก ืืื ืืื ืืืขืจ ืืึทืฉืืืก - MySuperPluginForRevit_2015. ืขืคืขื ืขื ืืืึทื ืคึผืจืึธืคึผืขืจืืืขืก ืืื:
- ืืืืฃ ืื ืงืืืืื "ืึทืคึผืืึทืงืืืฉืึทื"ื ืขื ืึทืืืขืง ืื ืกืึทืคืืงืก ืคืื ืื ืคึฟืึทืจืืึทืืืื ื ื ืึธืืขื _ืงืกื ืืืงืก (ืขืก ืืืขื ืืืขืจื ืงืืึธืจ ืืืึธืก ืฉืคึผืขืืขืจ)
- ืืืืฃ ืื ืงืืืืื "Assemblyยป ืึทืจืึธืคึผื ืขืืขื ืื ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธื ืจืงืกื ืืืงืก ืคืื ืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืคืขืื
ืืึทืืขืจืงืื ื: ืื ืืขืฆืืข ืืืขืจืกืืข ืคืื โโืืืืกืืึทื ืกืืืืืึธ ืืื ืึท ืืฉืืง - ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธืืก ืืขื ืขื ื ืืฉื ืืขืืืืื ืืื ืื ืคึผืจืืืขืงื ืคึผืจืึธืคึผืขืจืืืขืก ืคึฟืขื ืฆืืขืจ, ืืึธืืฉ ืืื ืืขื ืขื ืื ืืืฆื. ืืืื ืืืจ ืืขืจืคืึทืจืื ื ืืขื ืืืืืฉ, ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืืืึทืืืงื ืืื ืืึทื ืืืึทืื ืคืื ืื .csproj ืืขืงืข. ืึธืืขืจ, ืืืจ ื ืึธื ืืึธืื ืฆื ืึทืจืืขืื ืืื ืขืก, ืึทืืื ืืืืขื ืขื ืืืืฃ.
ืจืขื ืึทืืข ืื ืคึผืจืืืขืงื ืืื ืื ืืืืืื ื Explorer ืคึฟืขื ืฆืืขืจ ืืืจื ืจืืืืืืื ื ืื ืกืึทืคืืงืก _ืงืกื ืืืงืก ืืื ืืขืืึธืื ืึทืจืึธืคึผื ืขืืขื ืื ืคึผืจืืืขืงื ืคืื ืื ืืืืืื ื. ืืึธืก ืืื ื ืืืืืง ืฆื ืืึทืืื ืกืืจ ืืื ืืขืคืืื ืคืื ืคึผืขืจืคืขืงืฉืึทื ืืกืฅ! ืืืจ ืขืคึฟืขื ืขื ืื ืืขืงืข ืคืื โโืืื ืืืขืจ ืืืืืื ื, ืจืขื ืึทืืข ืื ืคึผืจืืืขืงื ืืขืงืข ืืึธืจื ืืื ืืขืจ ืืขืืืืงืขืจ ืืืขื ืืื ืืึธืื ืื ืคึผืจืืืขืงื ืฆืืจืืง ืืื ืืขืจ ืืืืืื ื.
ืขืคืขื ืขื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืคืึทืจืืืึทืืืขืจ. ืื. ืขืก. ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืืืื ื ืืื ืคึผืจืื ืฆืืคึผ, ืขืก ืืืขื ื ืื ืืืื ืืืจืฃ, ืึทืืื ืืืจ ืืืกืืขืงื ืขืก. ืืืจ ืืึทืื ื ืืึทืข ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืื ื ืขืืขื ืืืึธืก ืืขื ืขื ืฉืืื ืืึทืงืึทื ื ืฆื ืืื ืื ืจืงืกื ืืืงืก, ืจืงืกื ืืืงืก,โฆ, ืจืงืกื ืืืงืก. ืืึทืืขืจืงืื ื ืึทื ืืืจ ืืึธื ื ืื ืืึทืจืคึฟื ืฆื ื ืึธืืืึทืื ืกืขืืืื ืืก ืคืื ืื ืืขืจืข ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืื ืืืจ ืืึธื ื ืื ืืึทืจืคึฟื ืฆื ืฉืึทืคึฟื ืคึผืจืืืขืงื ืงืึทื ืคืืืืขืจืืืฉืึทื ื:
ืืืื ืฆื ืื ืืขืงืข ืืื ืื ืคึผืจืืืขืงื ืืื ืขืคืขื ืขื ืื ืืขืงืข ืืื ืื .csproj ืืขืฉืคึผืจืืื ืืื ืึท ืจืขืืึทืงืืึธืจ ืืืึธืก ืืื ืืึทืงืืืขื ืคึฟืึทืจ ืืืจ. ืืืจื ืืขื ืืืขื, ืืืจ ืงืขื ืขื ืืืื ืขืคึฟืขื ืขื ืขืก ืืื ืืืืกืืึทื ืกืืืืืึธ - ืืืจ ืืึทืจืคึฟื ืฆื ืึทื ืืึธืื ืื ืคึผืจืืืขืงื ืืื ืืขืืึธืื ืืขืจ ืืขืืืืื ื ืืืขืจ ืืืขื ืืืื ืืื ืื ืงืึธื ืืขืงืกื ืืขื ืื:
ืขืืืืื ื ืืื ืืืืกืืึทื ืกืืืืืึธ ืืื ืืคืืื ืืืืืขืจ, ืืื ื ืืขืจ ืจืขืืึทืงืืึธืจ ืืืืืข ืึทืืืื ื ืืื ืคึผืจืึทืืคึผืก.
ืืื ืืขืจ ืืขืงืข ืืืจ ืืืขืื ืืขื ืื ืขืืขืืขื ืื
ืืืื ืฆื ืืขืจ ืคึผืจืึธืกื (ืขืจืฉืืขืจ) ืขืืขืืขื ื ืคึผืจืึธืคึผืขืจืื ืืจืึธืืคึผ ืืื ืงืืง ืืืืฃ ืื ืคืึทืจืืึธื ืึทืกืขืืืื ื ืึธืืขื โ ืืึธืก ืืื ืืขืจ ื ืึธืืขื ืคึฟืื ืืขืจ ืคึฟืึทืจืืึทืืืื ื ืืื ืืืจ ืืึธืื ืขืก ืืึธืื ืึธื ืึท ืกืืคึฟืืงืก _ืงืกื ืืืงืก. ืืืื ืขืก ืืื ืึท ืกืึทืคืืงืก, ืึทืจืึธืคึผื ืขืืขื ืขืก.
ืืขืคึฟืื ืขื ืึทื ืขืืขืืขื ื ืืื ืึท ืฆืืฉืืึทื ื
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
ืืืจ ืืึทืจืคึฟื ืขืก ื ืื - ืืืจ ืืืกืืขืงื ืขืก.
ืขืืขืืขื ื ืืื ืฆืืฉืืึทื ื
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
ืืืขื ืืืื ืืืจืฃ ืฆื ืึทืจืืขืื ืืื ืืขืจ ืืื ืข ืคืื โโืงืึธื ืึทื ืืืืืงืืื ื ืืื ืืืืึทืืื ื. ืืืจ ืงืขื ืขื ืืืืฉื ืื ืคึผืจืึธืคึผืขืจืืืขืก ืฆื ืืืื ืืืืขืจืคืขื ืืฉื - ืฉืืขืื ืคืึทืจืฉืืืขื ืข ืจืขืืืืืึทื ืคึผืึทืืก, ืืืืฉื ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธืืก, ืขืืง.
ืืืฆื ืืึธืืืจ ืืึทืื ื ืืึทืข ืขืืขืืขื ืื ืคึผืจืึธืคึผืขืจืื ืืจืึธืืคึผ ืคึฟืึทืจ ืืื ืืืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื ื. ืืื ืื ืขืืขืืขื ืื ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืฉืืขืื ืคืืจ ืคึผืจืึธืคึผืขืจืืืขืก:
- OutputPath - ืจืขืืืืืึทื ืืขืงืข. ืืื ืฉืืขืื ืื ืคืขืืืงืืึทื ืืืขืจื binR20xx
- ืืขืคืื ืืจื ืงืึธื ืกืืึทื ืฅ - ืงืึทื ืืืฉืึทื ืึทื ืืึทืืืื ื ืกืืืืึธืืก. ืื ืืืขืจื ืืึธื ืืืื ืกืคึผืขืกืืคืืขื TRACE;R20ั ั
- TargetFrameworkVersion - ืคึผืืึทืืคืึธืจืืข ืืืขืจืกืืข. ืคืึทืจืฉืืืขื ืข ืืืขืจืกืืขืก ืคืื ืื Revit API ืืึทืจืคื ืกืคึผืขืฆืืคืืฆืืจื ืคืึทืจืฉืืืขื ืข ืคึผืืึทืืคืึธืจืืก.
- ืึทืกืขืืืื ื ืึธืืขื - ืคึฟืึทืจืืึทืืืื ื ื ืึธืืขื (ื"ื ืืขืงืข ื ืึธืืขื). ืืืจ ืงืขื ืขื ืฉืจืืึทืื ืื ืคึผืื ืืืขื ื ืึธืืขื ืคืื ืื ืคึฟืึทืจืืึทืืืื ื, ืึธืืขืจ ืคึฟืึทืจ ืืืขืจืกืึทืืืืึทืื ืืื ืจืขืงืึธืืขื ืืืจื ืฉืจืืืื ืื ืืืขืจื $(AssemblyName)_20ั ั . ืฆื ืืึธื ืืึธืก, ืืืจ ืคืจืืขืจ ืึทืืืขืงืืขื ืืืขื ืื ืกืึทืคืืงืก ืคืื ืื ืคึฟืึทืจืืึทืืืื ื ื ืึธืืขื
ืื ืืขืจืกื ืืืืืืืง ืฉืืจืื ืคืื ืึทืืข ืื ืขืืขืืขื ืื ืืื ืึทื ืืื ืงืขื ืขื ืคืฉืื ืืืื ืงืึทืคึผืื ืืื ืื ืืขืจืข ืคึผืจืึทืืืฉืขืงืก ืึธื ืืฉืึทื ืืื ื ืืื ืืืึท ืึทืืข. ืฉืคึผืขืืขืจ ืืื ืืขื ืึทืจืืืงื ืืื ืืืขื ืฆืืืฉืขืคึผืขื ืึทืืข ืื ืืื ืืึทืื ืคืื ืื .csproj ืืขืงืข.
ืึธืืงืื, ืืืจ ืืึธืื ืคืืืืขืจื ืื ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืื ืคึผืจืืืขืงื - ืขืก ืืื ื ืืฉื ืฉืืืขืจ. ืึธืืขืจ ืืืึธืก ืฆื ืืึธื ืืื ืคึผืืื-ืืื ืืืืืจืขืจืื (NuGet ืคึผืึทืงืึทืืืฉืึทื). ืืืื ืืืจ ืงืืงื ืืืืึทืืขืจ, ืืืจ ืืืขืื ืืขื ืึทื ืื ืื ืงืืืืขื ืืืืืจืขืจืื ืืขื ืขื ืกืคึผืขืกืืคืืขื ืืื ืื ืขืืขืืขื ืื
ืืขืจ ืขืืขืืขื ื ืงืืื ืืื ืื ืฆื ืืืืฃ
ื ืืฆื ืขืืขืืขื ื ืงืืืึทืื, ืืืจ ืฉืืขืื ืคืึทืจืฉืืืขื ืข NuGet ืคึผืึทืงืึทืืืฉืึทื ืคึฟืึทืจ ืคืึทืจืฉืืืขื ืข ืงืึทื ืคืืืืขืจืืืฉืึทื ื:
ืื ืืื ืืึทืื
<?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>
ืืืืข ืืึธื ืึทื ืืื ืืืื ืขืจ ืคืื ืื ืืืืื ืืื ืืขื ืืื ืกืคึผืขืกืืคืืขื ืฆืืืื ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืืจื OR. ืืขื ืืืขื ืื ืคืืจืืื ืื ืคึผืขืงื ืืืขื ืืืื ืงืึธื ื ืขืงืืขื ืืขืฉืึทืก ืงืึทื ืคืืืืขืจืืืฉืึทื ืืืืึทื.
ืืื ืืึธ ืืืจ ืืึธืื ืึผืืขื ืึทืืฅ ืืื ืฅ. ืืืจ ืืึธืื ืื ืคึผืจืืืขืงื ืฆืืจืืง, ืืขืื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืืจ ืืึทืจืคึฟื, ืจืืคื ืื ื ืืืขืจ "ืืื ืื ืงืึธื ืืขืงืกื ืืขื ืื ืคืื ืื ืืืืืื ื (ื ืืฉื ืื ืคึผืจืืืขืงื)ืืืงืขืจื ืึทืืข NuGet ืคึผืึทืงืึทืืืฉืึทื"ืืื ืืืจ ืืขื ืืื ืืื ืืืขืจ ืคึผืึทืงืึทืืืฉืึทื ืืืืฉื.
ืืื ืืื ืืขื ืืื ืข ืืื ืืขืงืืืขื ืฆื ืึท ืืืื ืกืืฃ - ืืื ืกืืจ ืฆื ืืึทืืืขื ืึทืืข ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืื ืึทืืึธื, ืืืจ ืงืขื ื ืืฆื ืคึผืขืงื ืคึฟืึทืจืืึทืืืื ื (ืืขื ืื "Assemblyยป->ยซืคึผืขืงื ืืืืขื"), ืึธืืขืจ ืืืขื ืกืืืืืฉืื ื ืงืึทื ืคืืืืขืจืืืฉืึทื ื, ืคึผืึทืงืึทืืืฉืึทื ืืขื ืขื ื ืืฉื ืืืืืึธืืึทืืืฉ ืืขืืื ื. ืืื ืืืขื ืึทืกืขืืืึทืืื ื ืื ืคึผืจืืืขืงื, ืืึธืก ืืืื ืืื ื ืืฉื ืคึผืึทืกืืจื, ืืึธืืฉ, ืืื ืืขืึธืจืืข, ืขืก ืืึธื. ืืื ืืื ื ืืฉื ืืขืคืื ืขื ืึท ืืืืืื ื ืฆื ืืขื ืคึผืจืึธืืืขื ื ืืฆื ื ืึธืจืืึทื ืืืื. ืืื ืจืืึฟ ืืกืชึผืื ืืึธืก ืืื ืืืื ืึท ืืืืกืืึทื ืกืืืืืึธ ืืฉืืง.
ืืขืจืืืขืจ, ืคึฟืึทืจ ืคึผืขืงื ืคึฟืึทืจืืึทืืืื ื, ืขืก ืืื ืืึทืฉืืึธืกื ืฆื ื ืืฆื ืึท ืกืคึผืขืฆืืขื ืึธืืึทืืืืืื ืคึฟืึทืจืืึทืืืื ื ืกืืกืืขื
ืึทืืื, ืืืื ืฆื ืืขืจ ืืขืงืข ืคืื โโืืื ืืืขืจ ืืืืืื ื (ื ืืฉื ืื ืคึผืจืืืขืงื), ืืึทืืื ืื ืฉืืืกื ืืืขืจืจืืง ืืื ืจืขืื ืืื ืืืืฃ ืึท ืืืืืืง ืคึผืืึทืฅ ืืื ืืขืจ ืืขืงืข - ืืื ืื ืงืึธื ืืขืงืกื ืืขื ืื ืกืขืืขืงืืืจื ืืขื ื ืืืขืจ "ืขืคืขื ืขื PowerShell ืคึฟืขื ืฆืืขืจ ืืึธ'.
ืืืื ืืืจ ืืึธื ื ืื ืืึธืื ืขืก ืืื ืกืืึทืืืจื ื ืืง, ืืขืืึธืื ืขืจืฉืืขืจ ืฉืจืืึทืื ืื ืืึทืคึฟืขื
dotnet tool install Nuke.GlobalTool โglobal
ืืืฆื ืฉืจืืึทืื ืื ืืึทืคึฟืขื ื ืืง ืืื ืืืจ ืืืขื ืืืื ืคึผืจืึทืืคึผืืื ืฆื ืงืึทื ืคืืืืขืจ ื ืืง ืคึฟืึทืจ ืื ืงืจืึทื ื ืคึผืจืืืขืงื. ืืื ืืึธื ื ืื ืืืืกื ืืื ืฆื ืฉืจืืึทืื ืืขื ืืขืจ ืจืืืืืง ืืื ืจืืกืืฉ - ืืื ืขื ืืืืฉ ืขืก ืืืขื ืืืื ืืขืฉืจืืื ืงืขื ื ืื ืืขืคึฟืื ืขื .ื ืืงืข ืืขืงืข. ืฆื ืืืจ ืืืืื ืฆื ืื ืกืืึทืืืจื ืึท ืืืื? [ื/ืขื]
ืืจืืงื ืื Y ืฉืืืกื ืืื ืืขืืึธืื ืขืก ืืืขื ืืืื ืืืจืขืงื ืกืขืืืื ืืก. ืืืจ ืืึทืจืคึฟื ืื ืกืืืคึผืืึทืกื ืึธืคึผืฆืืข ื ืืฆื MSBuild, ืึทืืื ืืืจ ืขื ืืคึฟืขืจื ืืื ืืื ืื ืกืงืจืขืขื ืฉืึธื:
ืืึธืืืจ ืืืื ืฆื ืืืืกืืึทื ืกืืืืืึธ, ืืืึธืก ืืืขื ืืขืื ืืื ืื ืฆื ืจืืืึธืื ืื ืืืืืื ื, ืืื ื ืึท ื ืืึทืข ืคึผืจืืืขืงื ืืื ืฆืืืขืืขืื ืฆื ืืื. ืืืจ ืจืืืึธืื ืื ืืืืืื ื ืืื ืืขื ืึทื ืืืจ ืืึธืื ืึท ืคึผืจืืืขืงื ืืืืขื ืืื ืืืึธืก ืืืจ ืืขื ืขื ืืื ืืขืจืขืกืืจื ืืื ืืืืื ืืืื ืืขืงืข - 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 ืคึฟืขื ืฆืืขืจ ืืื ืฉืจืืึทืื ืื ืืึทืคึฟืขื ืืืืืขืจ ื ืืง (ืืืจ ืงืขื ืขื ืฉืจืืึทืื ืื ืืึทืคึฟืขื ื ืืง ืื ืืึทืงืืืืื ื ืื ืคืืจืืื ืื ืฆืื. ืืืขืจ ืืืจ ืืึธืื ืืืื ืฆืื, ืืืึธืก ืืืืคื ืืืจื ืคืขืืืงืืึทื). ื ืึธื ืืจืื ืืืขื ืื ืึทืจืืึทื key, ืืืจ ืืืขืื ืคืืื ืืื ืคืึทืงืืืฉ ืืึทืงืขืจื, ืืืืึทื, ืืื ืืื ืึท ืคึฟืืื, ืืื ืืืขืจ ืคึผืจืืืขืงื ืืืขื ืืืื ืืืืืึธืืึทืืืฉ ืึทืกืขืืืึทืื ืคึฟืึทืจ ืคืึทืจืฉืืืขื ืข ืงืึทื ืคืืืืขืจืืืฉืึทื ื.
ืืืจื ืืขื ืืืขื, ืืืจ ืงืขื ืขื ื ืืฆื PowerShell ืืืืื ืคึฟืื ืืืืกืืึทื ืกืืืืืึธ (ืืขื ืื "ืืืื ืื ืยป->ยซืื ืืขืจืข ืคึฟืขื ืฆืืขืจยป->ยซืคึผืขืงื ืืึทื ืึทืืขืจ ืงืึทื ืกืึธืื"), ืึธืืขืจ ืึทืืฅ ืืืขื ืืืื ืืื ืฉืืืึทืจืฅ ืืื ืืืืึทืก, ืืืึธืก ืืื ื ืืฉื ืืืืขืจ ืืึทืงืืืขื.
ืืึธืก ืขื ืืืงื ืืืื ืึทืจืืืงื. ืืื ืืื ืืืืขืจ ืึทื ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืื ืึธืคึผืฆืืข ืคึฟืึทืจ AutoCAD ืืื. ืืื ืืึธืคึฟื ืึทื ืืขืจ ืืึทืืขืจืืึทื ืืขืจืืื ืื ืืึธ ืืืขื ืืขืคึฟืื ืขื ืืืึทื "ืงืืืืึทื ืฅ".
ืืื ืืืืง!
ืืงืืจ: www.habr.com