Nigbati o ba n ṣe agbekalẹ awọn afikun fun awọn ohun elo CAD (
Nigbati o ba ni ohun itanna kan nikan tabi ti o tun jẹ olubere ti ara ẹni ti o kọ ẹkọ ni ọran yii, o le nirọrun ṣe ẹda kan ti iṣẹ akanṣe, yi awọn aaye pataki pada ki o ṣajọ ẹya tuntun ti ohun itanna naa. Nitorinaa, awọn ayipada atẹle si koodu yoo fa ilosoke pupọ ninu awọn idiyele iṣẹ.
Bi o ṣe ni iriri ati imọ, iwọ yoo wa awọn ọna pupọ lati ṣe adaṣe ilana yii. Mo rin ọna yii ati pe Mo fẹ lati sọ fun ọ kini Mo pari pẹlu ati bii o ṣe rọrun.
Ni akọkọ, jẹ ki a wo ọna ti o han gbangba ati eyiti Mo ti lo fun igba pipẹ.
Awọn ọna asopọ si awọn faili ise agbese
Ati lati jẹ ki ohun gbogbo rọrun, wiwo ati oye, Emi yoo ṣe apejuwe ohun gbogbo nipa lilo apẹẹrẹ áljẹbrà ti idagbasoke ohun itanna.
Jẹ ki a ṣii Studio Visual (Mo ni ẹya Community 2019. Ati bẹẹni - ni Russian) ati ṣẹda ojutu tuntun kan. Ẹ jẹ́ ká pè é MySuperPluginForRevit
A yoo ṣe ohun itanna kan fun Revit fun awọn ẹya 2015-2020. Nitorinaa, jẹ ki a ṣẹda iṣẹ akanṣe tuntun kan ninu ojutu (Ikawe Apapọ Apapọ Net Framework) ki o pe MySuperPluginForRevit_2015
A nilo lati ṣafikun awọn ọna asopọ si API Revit. Nitoribẹẹ, a le ṣafikun awọn ọna asopọ si awọn faili agbegbe (a yoo nilo lati fi sori ẹrọ gbogbo awọn SDK pataki tabi gbogbo awọn ẹya ti Revit), ṣugbọn a yoo tẹle ọna ti o tọ lẹsẹkẹsẹ ati so package NuGet pọ. O le wa awọn idii pupọ, ṣugbọn Emi yoo lo ti ara mi.
Lẹhin ti o so package pọ, tẹ-ọtun lori nkan naa "jo"ki o si yan nkan naa"Gbe packages.config si PackageReference...»
Ti o ba jẹ lojiji ni aaye yii o bẹrẹ si ijaaya, nitori ninu window awọn ohun-ini package kii yoo si nkan pataki “Daakọ ni agbegbe", eyiti a ni pato nilo lati ṣeto si iye naa èké, lẹhinna maṣe bẹru - lọ si folda pẹlu iṣẹ akanṣe, ṣii faili pẹlu itẹsiwaju .csproj ni olootu ti o rọrun fun ọ (Mo lo Notepad ++) ki o wa titẹsi kan nipa package wa nibẹ. O dabi eleyi bayi:
<PackageReference Include="ModPlus.Revit.API.2015">
<Version>1.0.0</Version>
</PackageReference>
Fi ohun-ini kan kun asiko isise. O yoo tan bi eleyi:
<PackageReference Include="ModPlus.Revit.API.2015">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
Bayi, nigba kikọ iṣẹ akanṣe kan, awọn faili lati package kii yoo ṣe daakọ si folda ti o wu jade.
Jẹ ki a lọ siwaju - jẹ ki a ro lẹsẹkẹsẹ pe ohun itanna wa yoo lo ohunkan lati API Revit, eyiti o yipada ni akoko pupọ nigbati awọn ẹya tuntun ti tu silẹ. O dara, tabi a kan nilo lati yi nkan pada ninu koodu da lori ẹya ti Revit fun eyiti a n ṣe ohun itanna naa. Lati yanju iru awọn iyatọ ninu koodu, a yoo lo awọn aami akojọpọ ipo. Ṣii awọn ohun-ini akanṣe, lọ si taabu “Apejọ"ati ni aaye"Aami akopo ni àídájú"jẹ ki a kọ R2015.
Ṣe akiyesi pe aami gbọdọ wa ni afikun fun mejeeji Awọn atunto yokokoro ati Tu silẹ.
O dara, lakoko ti a wa ni window awọn ohun-ini, a lọ lẹsẹkẹsẹ si taabu “Ohun elo"ati ni aaye"Aaye orukọ aiyipada» yọ suffix kuro _2015ki aaye orukọ wa jẹ gbogbo agbaye ati ominira ti orukọ apejọ:
Ninu ọran mi, ni ọja ikẹhin, awọn afikun ti gbogbo awọn ẹya ni a fi sinu folda kan, nitorinaa awọn orukọ apejọ mi wa pẹlu suffix ti fọọmu naa _20хх. Ṣugbọn o tun le yọ suffix kuro lati orukọ apejọ ti awọn faili ba yẹ ki o wa ni awọn folda oriṣiriṣi.
Jẹ ki a lọ si koodu faili Kilasi1.cs ki o si ṣe adaṣe koodu kan nibẹ, ni akiyesi awọn ẹya oriṣiriṣi ti 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;
}
}
}
Mo ṣe akiyesi lẹsẹkẹsẹ gbogbo awọn ẹya ti Revit ti o wa loke ẹya 2015 (eyiti o wa ni akoko kikọ) ati lẹsẹkẹsẹ ṣe akiyesi wiwa awọn aami akopo ipo, eyiti o ṣẹda ni lilo awoṣe kanna.
Jẹ ká lọ siwaju si awọn akọkọ saami. A ṣẹda iṣẹ akanṣe tuntun ni ojutu wa, nikan fun ẹya ti ohun itanna fun Revit 2016. A tun ṣe gbogbo awọn igbesẹ ti a ṣalaye loke, lẹsẹsẹ, rọpo nọmba 2015 pẹlu nọmba 2016. Ṣugbọn faili naa Kilasi1.cs pa lati titun ise agbese.
Faili pẹlu koodu ti a beere - Kilasi1.cs - a ti ni tẹlẹ ati pe a kan nilo lati fi ọna asopọ si i ni iṣẹ akanṣe tuntun kan. Awọn ọna meji lo wa lati fi awọn ọna asopọ sii:
- Gigun - tẹ-ọtun lori iṣẹ naa ki o yan “fi kun un»->«Ohun elo to wa", ninu ferese ti o ṣii, wa faili ti o nilo ati dipo aṣayan"fi kun un"yan aṣayan"Fi kun bi asopọ»
- Kukuru - taara ni oluwakiri ojutu, yan faili ti o fẹ (tabi paapaa awọn faili, tabi paapaa gbogbo awọn folda) ki o fa sinu iṣẹ akanṣe tuntun lakoko ti o di bọtini Alt mọlẹ. Bi o ṣe n fa, iwọ yoo rii pe nigbati o ba tẹ bọtini Alt, kọsọ Asin yoo yipada lati ami afikun si itọka.
Imudojuiwọn: Mo ṣe iporuru diẹ ninu paragira yii - lati gbe awọn faili lọpọlọpọ o yẹ ki o di mọlẹ Yi lọ yi bọ + Alt!
Lẹhin ṣiṣe ilana naa, a yoo ni faili kan ninu iṣẹ akanṣe keji Kilasi1.cs pẹlu aami ti o baamu (ọfa buluu):
Nigbati o ba n ṣatunkọ koodu ni ferese olootu, o tun le yan iru ipo iṣẹ akanṣe lati ṣafihan koodu naa sinu, eyiti yoo gba ọ laaye lati wo koodu ti n ṣatunkọ labẹ awọn aami akojọpọ ipo oriṣiriṣi:
A ṣẹda gbogbo awọn iṣẹ akanṣe (2017-2020) ni lilo ero yii. Gige igbesi aye - ti o ba fa awọn faili ni Solusan Explorer kii ṣe lati iṣẹ akanṣe, ṣugbọn lati inu iṣẹ akanṣe nibiti wọn ti fi sii tẹlẹ bi ọna asopọ, lẹhinna o ko ni lati di bọtini Alt mọlẹ!
Aṣayan ti a ṣalaye jẹ ohun ti o dara titi di akoko ti fifi ẹya tuntun ti ohun itanna kun tabi titi di akoko ti fifi awọn faili tuntun kun si iṣẹ akanṣe - gbogbo eyi di pupọ. Ati pe laipẹ Mo lojiji lojiji rii bi o ṣe le to gbogbo rẹ jade pẹlu iṣẹ akanṣe kan ati pe a nlọ si ọna keji
Idan ti awọn atunto
Lẹhin ti o ti pari kika nibi, o le kigbe, "Kilode ti o ṣe apejuwe ọna akọkọ, ti nkan naa ba jẹ lẹsẹkẹsẹ nipa ekeji?!" Ati pe Mo ṣe apejuwe ohun gbogbo lati jẹ ki o ṣe alaye diẹ sii idi ti a nilo awọn aami akopo ipo ati ni awọn aaye wo ni awọn iṣẹ akanṣe wa yatọ. Ati pe ni bayi o di alaye si wa ni pato kini awọn iyatọ ninu awọn iṣẹ akanṣe ti a nilo lati ṣe, nlọ nikan iṣẹ akanṣe.
Ati lati jẹ ki ohun gbogbo han diẹ sii, a kii yoo ṣẹda iṣẹ akanṣe tuntun, ṣugbọn yoo ṣe awọn ayipada si iṣẹ akanṣe wa lọwọlọwọ ti a ṣẹda ni ọna akọkọ.
Nitorinaa, ni akọkọ, a yọ gbogbo awọn iṣẹ akanṣe kuro ni ojutu ayafi akọkọ (ti o ni awọn faili taara). Awon. ise agbese fun awọn ẹya 2016-2020. Ṣii folda pẹlu ojutu naa ki o paarẹ awọn folda ti awọn iṣẹ akanṣe wọnyi nibẹ.
A ni iṣẹ akanṣe kan ti o ku ninu ipinnu wa - MySuperPluginForRevit_2015. Ṣii awọn ohun-ini rẹ ati:
- Lori taabu"Ohun elo"yọ suffix kuro ni orukọ apejọ _2015 (Yoo di mimọ idi ti nigbamii)
- Lori taabu"Apejọ»yọ aami akojọpọ ipo kuro R2015 lati aaye ti o baamu
Akiyesi: ẹya tuntun ti Studio Visual ni kokoro kan - awọn aami akopo ipo ko ṣe afihan ni window awọn ohun-ini iṣẹ akanṣe, botilẹjẹpe wọn wa. Ti o ba ni iriri glitch yii, lẹhinna o nilo lati yọ wọn kuro pẹlu ọwọ lati faili .csproj. Sibẹsibẹ, a tun ni lati ṣiṣẹ ninu rẹ, nitorinaa ka siwaju.
Fun lorukọ mii iṣẹ akanṣe ni window Solusan Explorer nipa yiyọ suffix kuro _2015 ati ki o si yọ ise agbese lati ojutu. Eyi jẹ pataki lati ṣetọju aṣẹ ati awọn ikunsinu ti awọn aṣebiakọ! A ṣii folda ti ojutu wa, tun lorukọ folda ise agbese nibẹ ni ọna kanna ati fifuye iṣẹ naa pada sinu ojutu.
Ṣii oluṣakoso iṣeto. US iṣeto ni Tu ni opo, kii yoo nilo, nitorinaa a paarẹ rẹ. A ṣẹda awọn atunto tuntun pẹlu awọn orukọ ti o ti mọ tẹlẹ si wa R2015, R2016,…, R2020. Ṣe akiyesi pe o ko nilo lati daakọ awọn eto lati awọn atunto miiran ati pe o ko nilo lati ṣẹda awọn atunto iṣẹ akanṣe:
Lọ si folda pẹlu iṣẹ akanṣe naa ki o ṣii faili pẹlu itẹsiwaju .csproj ni olootu ti o rọrun fun ọ. Nipa ọna, o tun le ṣii ni Studio Visual - o nilo lati gbejade iṣẹ akanṣe ati lẹhinna ohun ti o fẹ yoo wa ninu akojọ aṣayan ọrọ:
Ṣiṣatunṣe ni Studio Visual paapaa dara julọ, nitori olootu mejeeji ṣe deede ati awọn ta.
Ninu faili a yoo rii awọn eroja
Lọ si eroja (akọkọ) ti o wọpọ Ẹgbẹ Ohun-ini ati ki o wo ni ohun ini Orukọ Apejọ – Eyi ni orukọ apejọ ati pe o yẹ ki a ni laisi suffix _2015. Ti suffix ba wa, lẹhinna yọ kuro.
Wiwa ohun ano pẹlu kan majemu
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
A ko nilo rẹ - a parẹ.
Ano pẹlu majemu
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
yoo nilo lati ṣiṣẹ ni ipele ti idagbasoke koodu ati n ṣatunṣe aṣiṣe. O le yi awọn ohun-ini rẹ pada lati ba awọn iwulo rẹ mu - ṣeto awọn ipa ọna ti o yatọ, yi awọn aami akojọpọ ipo pada, ati bẹbẹ lọ.
Bayi jẹ ki a ṣẹda awọn eroja tuntun Ẹgbẹ Ohun-ini fun awọn atunto wa. Ninu awọn eroja wọnyi a kan nilo lati ṣeto awọn ohun-ini mẹrin:
- Ona-jade – o wu folda. Mo ṣeto iye aiyipada binR20xx
- DefineConstant – àídájú akopo aami. Iye yẹ ki o wa ni pato Itọpa; R20хх
- TargetFrameworkVersion – Syeed version. Awọn ẹya oriṣiriṣi ti Revit API nilo awọn iru ẹrọ oriṣiriṣi lati wa ni pato.
- Orukọ Apejọ - orukọ apejọ (ie orukọ faili). O le kọ orukọ gangan ti apejọ, ṣugbọn fun iyipada Mo ṣeduro kikọ iye naa $(ApejọOrukọ)_20хх. Lati ṣe eyi, a ti yọ suffix kuro tẹlẹ lati orukọ apejọ naa
Ẹya pataki julọ ti gbogbo awọn eroja wọnyi ni pe wọn le jiroro ni daakọ sinu awọn iṣẹ akanṣe miiran laisi iyipada wọn rara. Nigbamii ninu nkan naa Emi yoo so gbogbo awọn akoonu inu faili .csproj naa.
O dara, a ti ṣayẹwo awọn ohun-ini ti ise agbese na - ko nira. Ṣugbọn kini lati ṣe pẹlu awọn ile-ikawe plug-in (awọn idii NuGet). Ti a ba wo siwaju sii, a yoo rii pe awọn ile-ikawe to wa ni pato ninu awọn eroja
Eroja wa si iranlọwọ wa
Lilo eroja yan, a ṣeto awọn idii NuGet oriṣiriṣi fun awọn atunto oriṣiriṣi:
Gbogbo awọn akoonu 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>
Jọwọ ṣe akiyesi pe ninu ọkan ninu awọn ipo ti Mo ṣalaye awọn atunto meji nipasẹ TABI. Ni ọna yii package ti o nilo yoo sopọ lakoko iṣeto yokokoro.
Ati ki o nibi ti a ni fere ohun gbogbo pipe. A gbe iṣẹ akanṣe pada, mu iṣeto ti a nilo ṣiṣẹ, pe nkan naa “ninu atokọ ọrọ ti ojutu (kii ṣe iṣẹ akanṣe)Pada gbogbo awọn idii NuGet pada“Ati pe a rii bii awọn idii wa ṣe yipada.
Ati ni ipele yii Mo wa si ipari ti o ku - lati le gba gbogbo awọn atunto ni ẹẹkan, a le lo apejọ apejọ (akojọ aṣyn "Apejọ»->«Kọ ipele"), ṣugbọn nigbati o ba yipada awọn atunto, awọn idii ko ni mu pada laifọwọyi. Ati nigbati o ba n ṣajọpọ iṣẹ naa, eyi tun ko ṣẹlẹ, biotilejepe, ni imọran, o yẹ. Emi ko rii ojutu kan si iṣoro yii nipa lilo awọn ọna boṣewa. Ati pe o ṣeese julọ eyi tun jẹ kokoro Studio Visual.
Nitorinaa, fun apejọ ipele, o pinnu lati lo eto apejọ adaṣe adaṣe pataki kan
Nitorinaa, lọ si folda ti ojutu wa (kii ṣe iṣẹ akanṣe), di bọtini mọlẹ naficula ati tẹ-ọtun lori aaye ti o ṣofo ninu folda - ninu akojọ ọrọ ọrọ yan nkan naa "Ṣii window PowerShell nibi».
Ti o ko ba fi sori ẹrọ iparun, lẹhinna kọ aṣẹ akọkọ
dotnet tool install Nuke.GlobalTool –global
Bayi kọ aṣẹ naa iparun ati awọn ti o yoo ti ọ lati tunto iparun fun awọn ti isiyi ise agbese. Emi ko mọ bi a ṣe le kọ eyi ni deede ni Ilu Rọsia - ni Gẹẹsi a yoo kọ Ko le rii faili .nuke. Ṣe o fẹ lati ṣeto kikọ kan? [y/n]
Tẹ bọtini Y lẹhinna awọn ohun eto taara yoo wa. A nilo aṣayan ti o rọrun julọ ni lilo MSBuild, nitorinaa a dahun bi ninu sikirinifoto:
Jẹ ki a lọ si Visual Studio, eyiti yoo jẹ ki a tun gbejade ojutu naa, niwọn igba ti a ti ṣafikun iṣẹ akanṣe tuntun si. A tun gbejade ojutu ati rii pe a ni iṣẹ akanṣe kan kọ ninu eyiti a nifẹ si faili kan nikan - Kọ.cs
Ṣii faili yii ki o kọ iwe afọwọkọ kan lati kọ iṣẹ akanṣe fun gbogbo awọn atunto. O dara, tabi lo iwe afọwọkọ mi, eyiti o le ṣatunkọ lati baamu awọn iwulo rẹ:
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"));
}
});
}
A pada si window PowerShell ki o tun kọ aṣẹ naa lẹẹkansi iparun (o le kọ aṣẹ naa iparun afihan awọn ti a beere Àkọlé. Sugbon a ni ọkan Àkọlé, eyiti o nṣiṣẹ nipasẹ aiyipada). Lẹhin titẹ bọtini Tẹ, a yoo lero bi awọn olosa gidi, nitori, bi ninu fiimu kan, iṣẹ akanṣe wa yoo ṣajọpọ laifọwọyi fun awọn atunto oriṣiriṣi.
Nipa ọna, o le lo PowerShell taara lati ile-iṣẹ wiwo (akojọ aṣyn "Wo»->«Awọn window miiran»->«Console Manager Package"), ṣugbọn ohun gbogbo yoo wa ni dudu ati funfun, eyiti ko rọrun pupọ.
Eyi pari nkan mi. Mo ni idaniloju pe o le ṣawari aṣayan fun AutoCAD funrararẹ. Mo nireti pe ohun elo ti a gbekalẹ nibi yoo wa “awọn alabara” rẹ.
Ṣayẹwo bayi!
orisun: www.habr.com