Ke hoʻomohala nei i nā plugins no nā noi CAD (
Inā loaʻa iā ʻoe hoʻokahi wale nō plugin a i ʻole ʻoe he mea hoʻomaka i aʻo iā ʻoe iho i kēia mea, hiki iā ʻoe ke hana i kope o ka papahana, hoʻololi i nā wahi kūpono i loko a hoʻohui i kahi mana hou o ka plugin. No laila, ʻo ka hoʻololi hou ʻana i ke code e hoʻonui nui i nā kumukūʻai hana.
Ke loaʻa iā ʻoe ka ʻike a me ka ʻike, e ʻike ʻoe i nā ala he nui e hoʻokaʻawale i kēia kaʻina hana. Ua hele au i kēia ala a makemake wau e haʻi iā ʻoe i kaʻu mea i hoʻopau ai a pehea ka maʻalahi.
ʻO ka mea mua, e nānā kāua i kahi ʻano i maopopo a ua hoʻohana au no ka manawa lōʻihi.
Nā loulou i nā faila papahana
A e hana maʻalahi nā mea āpau, ʻike a hoʻomaopopo ʻia, e wehewehe wau i nā mea āpau me ka hoʻohana ʻana i kahi hiʻohiʻona abstract o ka hoʻomohala plugin.
E wehe kākou i Visual Studio (Loaʻa iaʻu ka mana Community 2019. A ʻae - ma ka ʻōlelo Lūkini) a hana i kahi hopena hou. E kāhea kākou iā ia MySuperPluginForRevit
E hana mākou i kahi plugin no Revit no nā mana 2015-2020. No laila, e hana mākou i kahi papahana hou i ka hopena (Net Framework Class Library) a kāhea aku MySuperPluginForRevit_2015
Pono mākou e hoʻohui i nā loulou i ka Revit API. ʻOiaʻiʻo, hiki iā mākou ke hoʻohui i nā loulou i nā faila kūloko (pono mākou e hoʻokomo i nā SDK pono āpau a i ʻole nā mana āpau o Revit), akā e hahai koke mākou i ke ala kūpono a hoʻopili i ka pūʻulu NuGet. Hiki iā ʻoe ke loaʻa i nā pūʻolo liʻiliʻi, akā e hoʻohana wau i kaʻu iho.
Ma hope o ka hoʻopili ʻana i ka pūʻolo, kaomi ʻākau i ka mea "kūmole"a koho i ka mea"E hoʻoneʻe i packages.config i PackageReference...»
Inā hikiwawe i kēia manawa hoʻomaka ʻoe e makaʻu, no ka mea, ʻaʻohe mea koʻikoʻi i loko o ka puka makani waiwai.E kope ma ka ʻāina", pono mākou e hoʻonohonoho i ka waiwai wahahee, a laila mai hopohopo - e hele i ka waihona me ka papahana, wehe i ka faila me ka .csproj extension i loko o kahi mea hoʻoponopono kūpono iā ʻoe (hoʻohana wau i ka Notepad++) a loaʻa kahi komo e pili ana i kā mākou pūʻolo ma laila. Penei kona ano i keia manawa:
<PackageReference Include="ModPlus.Revit.API.2015">
<Version>1.0.0</Version>
</PackageReference>
Hoʻohui i kahi waiwai iā ia manawa holo. E like me kēia:
<PackageReference Include="ModPlus.Revit.API.2015">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
I kēia manawa, i ke kūkulu ʻana i kahi papahana, ʻaʻole e kope ʻia nā faila mai ka pōʻai i ka waihona puka.
E hele hou aku - e noʻonoʻo koke e hoʻohana kā mākou plugin i kekahi mea mai ka Revit API, i hoʻololi ʻia i ka wā i hoʻokuʻu ʻia ai nā mana hou. ʻAe, a i ʻole pono mākou e hoʻololi i kekahi mea i ke code e pili ana i ka mana o Revit no mākou e hana nei i ka plugin. No ka hoʻoholo i nā ʻokoʻa like ʻole i ke code, e hoʻohana mākou i nā hōʻailona hōʻuluʻulu kūlana. E wehe i nā waiwai o ka papahana, e hele i ka pā "Hōʻuluʻulu"a ma ke kula"Palapala hōʻuluʻulu kūlana"E kākau kāua R2015.
E hoʻomaopopo pono e hoʻohui ʻia ka hōʻailona no nā hoʻonohonoho Debug a me Release.
ʻAe, ʻoiai mākou i ka puka makani waiwai, hele koke mākou i ka " tabKa hoʻohana"a ma ke kula"Mokuna inoa paʻamau» e wehe i ka hope _2015no laila, ʻokoʻa ko mākou inoa inoa a kūʻokoʻa i ka inoa hui:
I koʻu hihia, i ka huahana hope loa, ua hoʻokomo ʻia nā plugins o nā ʻano āpau i hoʻokahi waihona, no laila e noho mau koʻu mau inoa hui me ka suffix o ke ʻano. _20хх. Akā hiki iā ʻoe ke wehe i ka suffix mai ka inoa hui inā manaʻo ʻia nā faila ma nā waihona ʻokoʻa.
E hele kāua i ke code file Papa1.cs a hoʻohālikelike i kekahi code ma laila, e noʻonoʻo ana i nā ʻano like ʻole o 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;
}
}
}
Ua noʻonoʻo koke wau i nā mana āpau o Revit ma luna o ka mana 2015 (i loaʻa i ka manawa kākau) a noʻonoʻo koke i ka hele ʻana o nā hōʻailona hōʻuluʻulu kūlana, i hana ʻia me ka hoʻohana ʻana i ka hoʻohālike like.
E neʻe kākou i ka mea nui. Hoʻokumu mākou i kahi papahana hou i kā mākou hopena, no ka mana wale nō o ka plugin no Revit 2016. Ke hana hou nei mākou i nā ʻanuʻu āpau i hōʻike ʻia ma luna nei, e hoʻololi i ka helu 2015 me ka helu 2016. Akā ʻo ka faila. Papa1.cs holoi mai ka papahana hou.
faila me ke code i makemake ʻia - Papa1.cs - ua loaʻa iā mākou a pono mākou e hoʻokomo i kahi loulou i loko o kahi papahana hou. ʻElua ala e hoʻokomo ai i nā loulou:
- lōʻihi - kaomi ʻākau ma ka papahana a koho "ho'ohui»->«ʻElemu e kū nei", ma ka puka aniani e wehe ai, e ʻimi i ka faila i makemake ʻia a ma kahi o ke koho "ho'ohui" koho i ke koho "Hoʻohui e like me ka pilina»
- Pōkole - pololei i ka mea ʻimi hoʻonā, koho i ka faila i makemake ʻia (a i ʻole nā faila, a i ʻole nā faila holoʻokoʻa) a kauo iā ia i kahi papahana hou i ka wā e paʻa ana i ke kī Alt. Ke kauo nei ʻoe, e ʻike ʻoe i ka wā e paʻi ai ʻoe i ke kī Alt, e hoʻololi ka cursor ʻiole mai kahi hōʻailona hoʻohui i kahi pua.
UPD: Ua hana au i kahi huikau ma kēia paukū - e hoʻololi i kekahi mau faila pono ʻoe e paʻa Kealohalo + Alt!
Ma hope o ka hoʻokō ʻana i ke kaʻina hana, e loaʻa iā mākou kahi faila ma ka papahana ʻelua Papa1.cs me ka ikona pili (pua uliuli):
I ka hoʻoponopono ʻana i ke code ma ka puka makani hoʻoponopono, hiki iā ʻoe ke koho i ka pōʻaiapili papahana e hōʻike i ke code i loko, e ʻae iā ʻoe e ʻike i ke code e hoʻoponopono ʻia ma lalo o nā hōʻailona hōʻuluʻulu kūlana ʻokoʻa:
Hana mākou i nā papahana ʻē aʻe a pau (2017-2020) me kēia hoʻolālā. Life hack - inā ʻoe e kauo i nā faila i ka Solution Explorer ʻaʻole mai ka papahana kumu, akā mai ka papahana kahi i hoʻokomo ʻia ai lākou ma ke ʻano he loulou, a laila ʻaʻole pono ʻoe e paʻa i ke kī Alt!
Maikaʻi ka koho i wehewehe ʻia a hiki i ka manawa o ka hoʻohui ʻana i kahi mana hou o ka plugin a i ka manawa o ka hoʻohui ʻana i nā faila hou i ka papahana - lilo kēia mau mea i mea paʻakikī loa. A i kēia manawa ua ʻike koke wau pehea e hoʻokaʻawale i nā mea āpau me hoʻokahi papahana a ke neʻe nei mākou i ke ala ʻelua
ʻO ke kilokilo o nā hoʻonohonoho
Ma hope o ka heluhelu ʻana ma aneʻi, hiki iā ʻoe ke hoʻōho, "No ke aha ʻoe i wehewehe ai i ke ʻano mua, inā pili koke ka ʻatikala i ka lua?!" A wehewehe au i nā mea a pau e maopopo ai ke kumu e pono ai mākou i nā hōʻailona hōʻuluʻulu kūlana a ma nā wahi e ʻokoʻa ai kā mākou papahana. A i kēia manawa ua maopopo iā mākou nā ʻokoʻa o nā papahana e pono ai mākou e hoʻokō, waiho wale i hoʻokahi papahana.
A i mea e maopopo ai nā mea a pau, ʻaʻole mākou e hana i kahi papahana hou, akā e hoʻololi i kā mākou papahana o kēia manawa i hana ʻia ma ke ala mua.
No laila, ʻo ka mea mua, wehe mākou i nā papahana āpau mai ka hopena koe wale nō ka mea nui (i loaʻa nā faila pololei). ʻO kēlā mau. nā papahana no nā mana 2016-2020. E wehe i ka waihona me ka hopena a holoi i nā waihona o kēia mau papahana ma laila.
Hoʻokahi papahana i koe i kā mākou hoʻoholo - MySuperPluginForRevit_2015. E wehe i kona mau waiwai a:
- Ma ka ʻaoʻao “Ka hoʻohana"E wehe i ka suffix mai ka inoa hui _2015 (e maopopo ana ke kumu ma hope)
- Ma ka ʻaoʻao “Hōʻuluʻulu» wehe i ka hōʻailona hōʻuluʻulu kūlana R2015 mai ke kahua pili
'Ōlelo Aʻo: ʻO ka mana hou loa o Visual Studio he pahu - ʻaʻole i hōʻike ʻia nā hōʻailona hōʻuluʻulu kūlana ma ka puka aniani waiwai o ka papahana, ʻoiai aia lākou. Inā ʻike ʻoe i kēia glitch, pono ʻoe e wehe iā lākou me ka lima mai ka faila .csproj. Eia naʻe, pono mākou e hana i loko, no laila e heluhelu.
E kapa hou i ka papahana ma ka puka aniani Solution Explorer ma ka wehe ʻana i ka suffix _2015 a laila wehe i ka papahana mai ka hoʻonā. Pono kēia e mālama i ka hoʻonohonoho a me nā manaʻo o ka perfectionists! Wehe mākou i ka waihona o kā mākou hopena, hoʻololi hou i ka waihona papahana ma laila ma ke ala like a hoʻouka hou i ka papahana i ka hopena.
E wehe i ka luna hoʻonohonoho. hoʻonohonoho US Release ma ke kumu, ʻaʻole pono ia, no laila holoi mākou. Hana mākou i nā hoʻonohonoho hou me nā inoa i kamaʻāina mua iā mākou R2015, R2016,..., R2020. E hoʻomaopopo ʻaʻole pono ʻoe e kope i nā hoʻonohonoho mai nā hoʻonohonoho ʻē aʻe a ʻaʻole pono ʻoe e hana i nā hoʻonohonoho papahana:
E hele i ka waihona me ka papahana a wehe i ka faila me ka hoʻonui .csproj ma kahi hoʻoponopono kūpono iā ʻoe. Ma ke ala, hiki iā ʻoe ke wehe iā ia ma Visual Studio - pono ʻoe e wehe i ka papahana a laila aia ka mea i makemake ʻia i ka papa kuhikuhi:
ʻOi aku ka maikaʻi o ka hoʻoponopono ʻana ma Visual Studio, no ka mea, hoʻoponopono ka mea hoʻoponopono a hoʻoikaika.
Ma ka faila e ʻike mākou i nā mea
E hele i ka mea maʻamau (mua). Hui Waiwai a nana i ka waiwai Inoa Hui - ʻo ia ka inoa o ka ʻaha a pono e loaʻa iā mākou me ka ʻole o ka suffix _2015. Inā he suffix, e wehe.
Ke ʻimi nei i kahi mea me kahi kūlana
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
ʻAʻole pono mākou - holoi mākou.
ʻElemu me ke kūlana
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Pono e hana ma ke kahua o ka hoʻomohala code a me ka debugging. Hiki iā ʻoe ke hoʻololi i kāna mau waiwai e kūpono i kāu mau pono - hoʻonoho i nā ala puka like ʻole, hoʻololi i nā hōʻailona hoʻohui kūlana, etc.
I kēia manawa, e hana kākou i nā mea hou Hui Waiwai no kā mākou hoʻonohonoho. Ma kēia mau mea pono mākou e hoʻonoho i ʻehā mau waiwai:
- Ala Huakaʻi – waihona puka. Hoʻonoho wau i ka waiwai paʻamau binR20xx
- DefineConstants - nā hōʻailona hōʻuluʻulu kūlana. Pono e kuhikuhi ʻia ka waiwai KAHUA;R20хх
- TargetFrameworkVersion – mana o ka paepae. Pono nā mana ʻokoʻa o ka Revit API i nā paepae like ʻole e kuhikuhi ʻia.
- Inoa Hui - inoa hui (ʻo ia ka inoa faila). Hiki iā ʻoe ke kākau i ka inoa pololei o ka ʻaha, akā no ka versatility ke paipai nei au e kākau i ka waiwai $(AssemblyName)_20хх. No ka hana ʻana i kēia, ua wehe mua mākou i ka suffix mai ka inoa hui
ʻO ka hiʻohiʻona koʻikoʻi o kēia mau mea āpau, hiki ke kope kope ʻia i nā papahana ʻē aʻe me ka ʻole o ka hoʻololi ʻana iā lākou. Ma hope o ka ʻatikala e hoʻopili wau i nā mea āpau o ka faila .csproj.
ʻAe, ua ʻike mākou i nā waiwai o ka papahana - ʻaʻole paʻakikī. Akā he aha ka mea e hana ai me nā hale waihona puke plug-in (NuGet packages). Inā mākou e nānā hou aku, e ʻike mākou ua kuhikuhi ʻia nā hale waihona puke i loko o nā mea
Hele mai ka mea e kōkua iā mākou
Ke hoʻohana nei i ka mea koho, hoʻonoho mākou i nā pūʻolo NuGet like ʻole no nā hoʻonohonoho like ʻole:
Nā mea a pau 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>
E ʻoluʻolu e hoʻomaopopo i loko o kekahi o nā kūlana ua kuhikuhi wau i ʻelua hoʻonohonoho ma o A I OLE. Ma kēia ala e hoʻopili ʻia ka pūʻolo i makemake ʻia i ka wā hoʻonohonoho Hoʻopiʻi.
A maʻaneʻi ua kokoke mākou i nā mea āpau. Hoʻihoʻi mākou i ka papahana, hiki ke hoʻonohonoho i ka hoʻonohonoho e pono ai mākou, e kāhea i ka mea "i ka papa kuhikuhi o ka hopena (ʻaʻole ka papahana)Hoʻihoʻi hou i nā pūʻolo NuGet a pau"a ʻike mākou i ka loli ʻana o kā mākou ʻeke.
A i kēia manawa ua hele au i kahi hopena make - i mea e hōʻiliʻili ai i nā hoʻonohonoho āpau i ka manawa hoʻokahi, hiki iā mākou ke hoʻohana i ka hui hui (menu "Hōʻuluʻulu»->«Kūkulu pūʻulu"), akā i ka hoʻololi ʻana i nā hoʻonohonoho, ʻaʻole hoʻihoʻi ʻia nā pūʻolo. A i ka hui ʻana i ka papahana, ʻaʻole hiki kēia, ʻoiai, ma ke kumumanaʻo, pono ia. ʻAʻole i loaʻa iaʻu kahi hopena i kēia pilikia me ka hoʻohana ʻana i nā ala maʻamau. A ʻo ka mea nui paha he kino Visual Studio kēia.
No laila, no ka hui pūʻulu, ua hoʻoholo ʻia e hoʻohana i kahi ʻōnaehana hui kūikawā kūikawā
No laila, e hele i ka waihona o kā mākou hopena (ʻaʻole ka papahana), e paʻa i ke kī Shift a kaomi pololei ma kahi hakahaka i loko o ka waihona - ma ka papa kuhikuhi koho i ka mea "E wehe i ka puka makani PowerShell maanei".
Inā ʻaʻole i hoʻokomo ʻia nuke, a laila e kākau mua i ke kauoha
dotnet tool install Nuke.GlobalTool –global
Ano e kakau i ke kauoha nuke a e koi ʻia ʻoe e hoʻonohonoho nuke no ka papahana o kēia manawa. ʻAʻole maopopo iaʻu pehea e kākau pololei ai i kēia ma ka ʻōlelo Lūkini - ma ka ʻōlelo Pelekania e kākau ʻia ʻAʻole hiki ke loaʻa ka faila .nuke. Makemake ʻoe e hoʻonohonoho i kahi kūkulu? [y/n]
E kaomi i ke kī Y a laila e loaʻa nā mea hoʻonohonoho pololei. Pono mākou i ka koho maʻalahi e hoʻohana MSBuild, no laila pane mākou e like me ke kiʻi:
E hele kāua i Visual Studio, kahi e koi ai iā mākou e hoʻouka hou i ka hopena, ʻoiai ua hoʻohui ʻia kahi papahana hou iā ia. Hoʻouka hou mākou i ka hopena a ʻike mākou he papahana kā mākou hana kahi i makemake ai mākou i hoʻokahi faila - Build.cs
E wehe i kēia faila a kākau i kahi palapala e kūkulu i ka papahana no nā hoʻonohonoho āpau. ʻAe, a i ʻole e hoʻohana i kaʻu palapala, hiki iā ʻoe ke hoʻoponopono e kūpono i kāu mau pono:
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"));
}
});
}
Hoʻi mākou i ka puka makani PowerShell a kākau hou i ke kauoha nuke (hiki iā ʻoe ke kākau i ke kauoha nuke e hōʻike ana i ka mea e pono ai pale umauma hoʻokahi. Akā hoʻokahi mākou pale umauma hoʻokahi, e holo ana ma ka paʻamau). Ma hope o ke kaomi ʻana i ke kī Enter, e manaʻo mākou e like me nā hackers maoli, no ka mea, e like me ke kiʻiʻoniʻoni, e hui pū ʻia kā mākou papahana no nā hoʻonohonoho like ʻole.
Ma ke ala, hiki iā ʻoe ke hoʻohana pololei iā PowerShell mai Visual Studio (menu "nānaina»->«Nā puka makani ʻē aʻe»->«Pūʻulu Luna Hoʻokele"), akā aia nā mea āpau i ka ʻeleʻele a me ke keʻokeʻo, ʻaʻole kūpono loa.
Hoʻopau kēia i kaʻu ʻatikala. Manaʻo wau hiki iā ʻoe ke noʻonoʻo i ke koho no AutoCAD iā ʻoe iho. Manaʻo wau e loaʻa nā mea i hōʻike ʻia ma ʻaneʻi i kāna mau "mea kūʻai".
Nā mea hou aku!
Source: www.habr.com