Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Ha o etsa li-plugins bakeng sa lits'ebetso tsa CAD (tabeng ea ka tsena ke AutoCAD, Revit le Renga) ha nako e ntse e ea, bothata bo le bong bo hlaha - mefuta e mecha ea mananeo a lokolloa, liphetoho tsa API tsa bona le mefuta e mecha ea li-plugins e hloka ho etsoa.

Ha u e-na le plugin e le 'ngoe feela kapa u ntse u le motho ea qalang ho ithuta ka taba ena, u ka etsa kopi ea morero, fetola libaka tse hlokahalang ho eona' me u bokelle phetolelo e ncha ea plugin. Ka hona, liphetoho tse latelang ho khoutu li tla kenyelletsa keketseho e ngata ea litšenyehelo tsa basebetsi.

Ha o ntse o fumana boiphihlelo le tsebo, o tla fumana mekhoa e mengata ea ho iketsetsa ts'ebetso ena. Ke tsamaile tsela ena 'me ke batla ho u joetsa hore na ke qetetse ka eng le hore na ho bonolo hakae.

Pele, a re shebeng mokhoa o totobetseng le oo esale ke o sebelisa ka nako e telele.

Lihokelo tsa lifaele tsa projeke

Le ho etsa ntho e 'ngoe le e' ngoe e bonolo, e bonahalang le e utloisisoang, ke tla hlalosa ntho e 'ngoe le e' ngoe ke sebelisa mohlala o sa bonahaleng oa nts'etsopele ea plugin.

A re bule Visual Studio (Ke na le mofuta oa Sechaba oa 2019. E, ka Serussia) 'me u thehe tharollo e ncha. Ha re mo bitseng MySuperPluginForRevit

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Re tla be re etsa plugin bakeng sa Revit bakeng sa liphetolelo tsa 2015-2020. Ka hona, a re theheng morero o mocha ka tharollo (Net Framework Class Library) ebe re e bitsa MySuperPluginForRevit_2015

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Re hloka ho kenya likhokahano ho Revit API. Ehlile, re ka eketsa likhokahano ho lifaele tsa lehae (re tla hloka ho kenya li-SDK tsohle tse hlokahalang kapa mefuta eohle ea Revit), empa hang-hang re tla latela tsela e nepahetseng ebe re hokahanya sephutheloana sa NuGet. U ka fumana liphutheloana tse 'maloa, empa ke tla sebelisa ea ka.

Ka mor'a ho hokahanya sephutheloana, tobetsa ka ho le letona nthong "litšupiso"'me u khethe ntho"Tsamaisa packages.config ho PackageReference...»

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Haeba ka tšohanyetso ka nako ena u qala ho tšoha, hobane fensetereng ea thepa ea sephutheloana ho ke ke ha e-ba le ntho ea bohlokoa "Kopitsa sebakeng sa heno", eo ka sebele re hlokang ho e beha boleng bohata, joale u se ke ua tšoha - e-ea foldareng e nang le morero, bula faele ka katoloso ea .csproj ho mohlophisi o loketseng bakeng sa hau (ke sebelisa Notepad ++) 'me u fumane ho kena ka sephutheloana sa rona moo. O shebahala tjena:

<PackageReference Include="ModPlus.Revit.API.2015">
  <Version>1.0.0</Version>
</PackageReference>

Eketsa thepa ho eona nako ea ho sebetsa. E tla shebahala tjena:

<PackageReference Include="ModPlus.Revit.API.2015">
  <Version>1.0.0</Version>
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>

Hona joale, ha ho etsoa morero, lifaele tse tsoang sephutheloana li ke ke tsa kopitsoa ho foldareng ea tlhahiso.
Ha re feteleng pele - a re nke hang-hang hore plugin ea rona e tla sebelisa ho hong ho tsoa ho Revit API, e fetohileng ha nako e ntse e ea ha liphetolelo tse ncha li lokolloa. Ho lokile, kapa re hloka feela ho fetola ntho e itseng khoutu ho latela mofuta oa Revit oo re o etsang plugin. Ho rarolla liphapang tse joalo ka khoutu, re tla sebelisa matšoao a ho bokella maemo. Bula thepa ea projeke, e ea ho "tabKopano"le tšimong"Tlhaloso ea ho bokella maemo"ha re ngoleng R2015.

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Hlokomela hore letšoao le tlameha ho eketsoa bakeng sa litlhophiso tsa Debug le Release.

Ha re ntse re le fensetereng ea thepa, hang-hang re ea ho " tabKopo"le tšimong"Sebaka sa kamehla sa mabitso» tlosa sehlotshwana _2015e le hore sebaka sa rona sa mabitso e be sa bokahohle ebile se ikemetse ho lebitso la kopano:

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Tabeng ea ka, sehlahisoa sa ho qetela, li-plugins tsa mefuta eohle li kenngoa ka har'a fensetere e le 'ngoe, kahoo mabitso a kopano a sala le sekoti sa foromo. _20хх. Empa o ka boela oa tlosa suffix lebitsong la kopano haeba lifaele li tlameha ho beoa lifoldareng tse fapaneng.

Ha re ee ho khoutu ea faele Sehlopha sa1.cs 'me u etsise khoutu e itseng moo, u nahanela mefuta e fapaneng ea 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;
        }
    }
}

Hang-hang ke ile ka ela hloko liphetolelo tsohle tsa Revit ka holimo ho version 2015 (e neng e le teng ka nako ea ho ngola) 'me hang-hang ke ela hloko boteng ba matšoao a kopantsoeng a nang le maemo, a entsoeng ka mokhoa o tšoanang.

Ha re feteleng ho ntlha e kholo. Re theha morero o mocha ka tharollo ea rona, feela bakeng sa phetolelo ea plugin bakeng sa Revit 2016. Re pheta mehato eohle e hlalositsoeng ka holimo, ka ho latellana, ho nkela nomoro ea 2015 sebaka ka nomoro ea 2016. Empa faele Sehlopha sa1.cs hlakola morerong o mocha.

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Faele ka khoutu e hlokahalang - Sehlopha sa1.cs - re se re ntse re e-na le eona 'me re hloka feela ho kenya khokahanyo ho eona morerong o mocha. Ho na le mekhoa e 'meli ea ho kenya lihokelo:

  1. Nako e telele - tobetsa ka ho le letona morerong ebe u khetha "eketsa»->«Karolo e teng", ka fensetere e bulang, fumana faele e hlokahalang mme sebakeng sa khetho"eketsa"khetha khetho"Eketsa joalo ka khokahano»

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

  1. Nakoana - ka ho toba ho mofuputsi oa tharollo, khetha faele e lakatsehang (kapa esita le lifaele, kapa esita le li-folders kaofela) 'me u li hulele morerong o mocha ha u ntse u tšoere konopo ea Alt. Ha u ntse u hula, u tla bona hore ha u tobetsa konopo ea Alt, sekontiri sa mouse se tla fetoha ho tloha ho letšoao la ho kopanya ho ea ho motsu.
    UPD: Ke entse pherekano e nyane serapeng sena - ho fetisetsa lifaele tse 'maloa u lokela ho li tšoara Shift + Alt!

Kamora ho etsa ts'ebetso, re tla ba le faele morerong oa bobeli Sehlopha sa1.cs ka lets'oao le ts'oanang (motsu o moputsoa):

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Ha u hlophisa khoutu ka fensetereng ea mohlophisi, u ka boela ua khetha hore na ke moelelo ofe oa morero oo u tla bonts'a khoutu ho oona, o tla u lumella ho bona khoutu e ntse e hlophisoa tlas'a matšoao a fapaneng a ho bokella maemo:

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Re theha merero e meng kaofela (2017-2020) re sebelisa morero ona. Hack ea bophelo - haeba u hula lifaele ho Tharollo ea Tharollo eseng ho tsoa morerong oa motheo, empa ho tloha morerong oo li seng li kentsoe ho tsona e le sehokelo, joale ha ua tlameha ho tšoara konopo ea Alt!

Khetho e hlalositsoeng e ntle haholo ho fihlela motsotso oa ho eketsa mofuta o mocha oa plugin kapa ho fihlela motsotso oa ho eketsa lifaele tse ncha morerong - sena sohle se khathatsa haholo. 'Me haufinyane tjena ke ile ka hlokomela ka tšohanyetso mokhoa oa ho e rarolla ka morero o le mong' me re fetela pele ho mokhoa oa bobeli

Boselamose ba litlhophiso

Ha u se u qetile ho bala mona, u ka ’na ua khotsa, “Ke hobane’ng ha u hlalositse mokhoa oa pele, haeba sehlooho seo hang-hang se mabapi le oa bobeli?!” 'Me ke hlalositse ntho e' ngoe le e 'ngoe ho hlakisa hore na ke hobane'ng ha re hloka matšoao a kopanetsoeng le hore na merero ea rona e fapana hokae. 'Me joale ho re hlakisetsa hantle hore na ke liphapang life tseo re lokelang ho li phethahatsa, re siea morero o le mong feela.

Le ho etsa hore ntho e 'ngoe le e' ngoe e be e hlakileng haholoanyane, re ke ke ra theha morero o mocha, empa re tla etsa liphetoho morerong oa rona oa hona joale o entsoeng ka tsela ea pele.

Kahoo, pele ho tsohle, re tlosa merero eohle ho tsoa tharollo ntle le e ka sehloohong (e nang le lifaele ka ho toba). Tseo. merero ea liphetolelo tsa 2016-2020. Bula foldara ka tharollo 'me u hlakole lifoldara tsa merero ena moo.

Re na le projeke e le 'ngoe e setseng qetong ea rona - MySuperPluginForRevit_2015. Bula thepa ea eona le:

  1. Ho tab "Kopo"tlosa suffix lebitsong la kopano _2015 (ho tla hlaka hore na hobaneng hamorao)
  2. Ho tab "Kopano» tlosa letšoao la ho bokella maemo R2015 ho tsoa tšimong e tsamaellanang

Tlhokomeliso: mofuta oa morao-rao oa Visual Studio o na le phoso - matšoao a ho bokella a nang le maemo ha a bontšoe fensetereng ea thepa ea projeke, leha a le teng. Haeba u ba le bothata bona, joale u lokela ho li tlosa ka letsoho faeleng ea .csproj. Leha ho le joalo, re ntse re tlameha ho sebetsa ho eona, kahoo bala.

Reha morero bocha fensetereng ea Tharollo ea Mofuputsi ka ho tlosa suffix _2015 ebe o tlosa morero ho tsoa tharollong. Sena sea hlokahala ho boloka taolo le maikutlo a batho ba batlang phetheho! Re bula foldara ea tharollo ea rona, re reha foldara ea morero moo ka tsela e ts'oanang ebe re kenya morero hape tharollong.

Bula mookameli oa tlhophiso. tlhophiso ea US lokolloe ha e le hantle, e ke ke ea hlokahala, kahoo re e hlakola. Re theha litlhophiso tse ncha ka mabitso ao re seng re a tloaetse R2015, R2016,…, R2020. Hlokomela hore ha ho hlokahale hore u kopitse litlhophiso ho tsoa ho litlhophiso tse ling 'me ha ho hlokahale hore u thehe litlhophiso tsa projeke:

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

E-ea foldareng ka morero 'me u bule faele ka katoloso ea .csproj ho mohlophisi o loketseng uena. Ha u le tseleng, u ka e bula le ho Visual Studio - o hloka ho laolla morero ebe ntho eo o e batlang e tla ba ho menu ea litaba:

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Ho hlophisoa ho Visual Studio hoa rateha, kaha mohlophisi o lumellana le ho khothaletsa.

Ka faeleng re tla bona likarolo PropertyGroup - ka holimo haholo ke ea kakaretso, ebe ho tla maemo. Lintlha tsena li beha thepa ea morero ha e hahuoa. Ntho ea pele, e se nang maemo, e beha thepa e akaretsang, le likarolo tse nang le maemo, ka hona, li fetola thepa e itseng ho latela litlhophiso.

E-ea ho ntho e tloaelehileng (ea pele). PropertyGroup le ho sheba thepa AssemblyName – lena ke lebitso la kopano mme re lokela ho ba le yona ntle le sehlotshwana _2015. Haeba ho na le suffix, joale e tlose.

Ho fumana element e nang le boemo

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

Ha re e hloke - rea e hlakola.

Element e nang le boemo

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

ho tla hlokahala ho sebetsa mothating oa nts'etsopele ea khoutu le ho lokisa liphoso. U ka fetola thepa ea eona hore e lumellane le litlhoko tsa hau - beha litsela tse fapaneng tsa tlhahiso, fetola matšoao a ho bokella, joalo-joalo.

Joale ha re theheng lintlha tse ncha PropertyGroup bakeng sa litlhophiso tsa rona. Likarolong tsena re hloka feela ho beha litšobotsi tse nne:

  • OutputPath – foldara ya tlhahiso. Ke beha boleng ba kamehla binR20xx
  • DefineConstants – matshwao a ho bokella dipehelo. Theko e tlameha ho hlalosoa TRACE;R20хх
  • TargetFrameworkVersion - mofuta oa sethala. Liphetolelo tse fapaneng tsa Revit API li hloka hore ho boleloe liforomo tse fapaneng.
  • AssemblyName – lebitso la kopano (i.e. lebitso la faele). U ka ngola lebitso le tobileng la kopano, empa bakeng sa ho feto-fetoha ha maemo ke khothaletsa ho ngola boleng $(AssemblyName)_20хх. Ho etsa sena, re kile ra tlosa suffix lebitsong la kopano

Ntho ea bohlokoa ka ho fetisisa ea likarolo tsena kaofela ke hore li ka kopitsoa feela mererong e meng ntle le ho li fetola ho hang. Hamorao sehloohong sena ke tla hokela litaba tsohle tsa faele ea .csproj.

Ho lokile, re fumane thepa ea morero - ha e thata. Empa seo u lokelang ho se etsa ka lilaebrari tsa plug-in (liphutheloana tsa NuGet). Ha re sheba ho ea pele, re tla bona hore lilaebrari tse kenyellelitsoeng li hlalositsoe ka har'a likarolo ItemGroup. Empa bomalimabe - ntho ena e sebetsana le maemo ka nepo e le ntho e itseng PropertyGroup. Mohlomong ena ke glitch ea Visual Studio, empa haeba u bolela lintlha tse 'maloa ItemGroup ka maemo a tlhophiso, 'me u kenye likhokahano tse fapaneng ho liphutheloana tsa NuGet kahare, joale ha u fetola tlhophiso, liphutheloana tsohle tse boletsoeng li hokahane le morero.

The element e tla ho re thusa khetha, e sebetsang ho latela monahano oa rona o tloaelehileng haeba-joale-e mong.

Ho sebelisa element khetha, re beha liphutheloana tse fapaneng tsa NuGet bakeng sa litlhophiso tse fapaneng:

Litaba tsohle 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>

Ka kopo hlokomela hore ho e 'ngoe ea maemo ke hlalositse litlhophiso tse peli ka KAPA. Ka tsela ena sephutheloana se hlokahalang se tla kopanngoa nakong ea tlhophiso Phoso.

'Me mona re na le hoo e ka bang tsohle tse phethahetseng. Re kenya projeke hape, re nolofalletsa tlhophiso eo re e hlokang, re letsetsa ntho " ka har'a menyu ea tharollo (eseng morero)Khutlisa liphutheloana tsohle tsa NuGet"'me re bona kamoo liphutheloana tsa rona li fetohang kateng.

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Mme mothating ona ke fihlile pheletsong - molemong oa ho bokella litlhophiso tsohle ka nako e le ngoe, re ka sebelisa kopano ea batch (menu "Kopano»->«Kaho ea sehlopha"), empa ha u fetola litlhophiso, liphutheloana ha li tsosolosoe ka bohona. 'Me ha ho bokelloa morero, sena le sona ha se etsahale, le hoja, ka khopolo, se lokela. Ha ke so fumane tharollo bothateng bona ke sebelisa mekhoa e tloaelehileng. 'Me ho ka etsahala hore ebe ena ke phoso ea Visual Studio.

Ka hona, bakeng sa kopano ea lihlopha, ho ile ha etsoa qeto ea ho sebelisa tsamaiso e khethehileng ea kopano e ikemetseng Nuke. Ha e le hantle ke ne ke sa batle sena hobane ke nahana hore se feteletse ho latela nts'etsopele ea plugin, empa hajoale ha ke bone tharollo e 'ngoe. Le ho potso "Hobaneng Nuke?" Karabo e bonolo - re e sebelisa mosebetsing.

Kahoo, e-ea foldareng ea tharollo ea rona (eseng morero), tšoara senotlolo battlefield 'me u tobetse ka ho le letona sebakeng se se nang letho foldareng - ho menu ea moelelo khetha ntho "Bula fensetere ea PowerShell mona".

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Haeba ha u na eona nuke, ebe u ngola taelo pele

dotnet tool install Nuke.GlobalTool –global

Joale ngola taelo nuke 'me u tla susumelletseha ho lokisa nuke bakeng sa morero oa hajoale. Ha ke tsebe ho ngola sena ka mokhoa o nepahetseng haholoanyane ka Serussia - ka Senyesemane se tla ngoloa Ha e khone ho fumana faele ea .nuke. O batla ho theha mohaho? [y/n]

Tobetsa konopo ea Y 'me ho tla ba le lintho tsa li-setting tse tobileng. Re hloka khetho e bonolo ka ho fetisisa ea ho e sebelisa MSBuild, kahoo re araba joalo ka skrineng:

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Ha re ee ho Visual Studio, e tla re khothaletsa ho kenya tharollo hape, kaha ho kentsoe projeke e ncha ho eona. Re kenya tharollo hape mme re bona hore re na le morero haha moo re thahasellang faele e le 'ngoe feela - Build.cs

Re etsa projeke e le 'ngoe ea plugin ka pokello ea liphetolelo tse fapaneng tsa Revit/AutoCAD

Bula faele ena 'me u ngole script ho aha morero bakeng sa litlhophiso tsohle. Che, kapa sebelisa mongolo oa ka, oo u ka o hlophisang ho lumellana le litlhoko tsa hau:

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"));
            }
        });
}

Re khutlela fensetereng ea PowerShell ebe re ngola taelo hape nuke (o ka ngola taelo nuke e bontshang se batloang shebiloeng. Empa re na le e 'ngoe shebiloeng, e sebetsang ka ho sa feleng). Ka mor'a ho tobetsa konopo ea Enter, re tla ikutloa re le bahlaseli ba sebele, hobane, joalo ka filimi, morero oa rona o tla bokelloa ka bohona bakeng sa litlhophiso tse fapaneng.

Ka tsela, o ka sebelisa PowerShell ka kotloloho ho tsoa ho Visual Studio (menu ".pono»->«Lifensetere tse ling»->«Sephutheloana sa Motsamaisi oa Console"), empa ntho e 'ngoe le e' ngoe e tla ba e ntšo le e tšoeu, e seng bonolo haholo.

Sena se phethela sengoloa sa ka. Ke na le bonnete ba hore u ka ikhethela khetho ea AutoCAD ka bouena. Ke tšepa hore boitsebiso bo fanoeng mona bo tla fumana "bareki" ba bona.

Kea le leboha ka tlhokomelo ea hau!

Source: www.habr.com

Eketsa ka tlhaloso