این سایت برای ie9 طراحی نشده است

لطفا دستگاه خود را بچرخانید.

ساخت Nuget Package

۲۸ مهر ۱۳۹۴ نگین ربیعی
بدون دیدگاه

مقدمه:

ناگت ها پکیج هایی هستند که به صورت رایگان و open source در اختیار برنامه نویس ها قرار میگیره تا اونها بتونند در برنامه های Net. ،ازشون استفاده کنند . هدف اصلی ناگت ها کمک به برنامه نویس ها در جهت آسانتر کردن کار از طریق اضافه کردن library ها و کدهای آماده است. در این مقاله میخواهیم خودمان یک ناگت ایجاد کرده  و در ادامهمنتشرش کنیم.

پروژه ای که برای مثال میخوام توضیح بدم ،  برای log کردن خطاهای برنامه است که در یک پروژه class library ایجاد شده و dll ای به نام exceptionhandling ایجادکرده  ، هدف این پروژه نوشتن log در یک فایل notePad و ارسال ایمیل برای اطلاع از وقوع این خطاست و در همین  راستا از دو  newtonsoft ،dllو Mandril استفاده شده.

هدف من اینه که از این پروژه در قالب یک ناگت با همه dll ها ، بصورت یکجا و encapsulate استفاده کنم.

حالا که همه چیز برای ما روشن شد ، وقتشه شروع کنیم .

در ابتدا باید Nuget.exe رو دانلود کنیم و در مسیر فایل پروژمون قرار بدیم (از اینجا میتونید دانلود کنید)

Untitled

 

در قسمت بعد باید تمام مواردی که برای ایجاد این پکیج نیاز داریم رو جمع آوری کنیم برای اینکار نیاز به یک فایل xml داریم که اطلاعات پکیج ما داخل این فایل است و NuSpec نامیده میشه و در مسیر فایل NuGet.exe ایست که در قسمت قبل اون رو دانلود کردیم .

2

دستور زیر را اجرا میکنیم .

NuGet.exe spec

فایل ExceptionHandler.nuspec ایجاد شد

3

حالا با edit کردن این فایل تمام مواردی که نیاز داریم در nuget ما باشد رو اضافه می کنیم .

4

اگر به پروژه خود namespace ای اضافه کردیم باید آنرا در تگ  <frameworkAssemblies>  قرار بدیم ،مانند کد پایین

<frameworkAssemblies> 
  <frameworkAssembly assemblyName="System.IO" />
  </frameworkAssemblies>

اگر پروژه نیازمند اضافه کردن dll است آنهارا داخل تگ  <dependencies> قرار میدیم . در هنگام نصب این پکیج این dll ها به پروژه اضافه میشود

<dependencies>
 <dependency id="Newtonsoft.Json" version="7.0.0" />
 <dependency id="RestSharp" />
 </dependencies>

اگر نیاز به تنظیمات خاصی داشتیم که در قسمت config مشخص میشد، فایل config را به app.config.transform یا web.config.transform تغییر نام میدیم و در تگ   <files> آنها اضافه میکنیم .

dll پروژه ای که ایجاد کردیم و یا هر dll دیگری که میخواهیم در پروژه خود استفاده کنیم در تگ <files> قرار میدیم.

مانند کد زیر

<files>
 <file src="lib\net45\ExceptionHandling.dll" target="lib" />
 <file src="lib\net45\Mandrill.dll" target="lib" />
 <file src="app.config.transform" target="content\app.config.transform" />
 <file src="web.config.transform" target="content\web.config.transform	" />
 </files>

به این نکته دقت کنید که تگ <files> خارج تگ <metadata> و در درون تگ <package> قرار دارد.

تمام مواردی که package ما نیاز داشت اضافه شد ، همه چیز آمادست تا ناگتمون رو بسازیم!

با اجرای دستور  زیر در آدرسی که فایل nuspec خود را ایجاد کردیم package ما ساخته میشه

nuget pack MyAssembly.nuspec

5

حاصل اجرای این دستور فایلی با پسوند nupkg است.

ناگت ما آمادست :)

برای انتشار این پکیج باید به سایت https://www.nuget.org برویم و بعد از ثبت نام  فایل nupkg خود را در قسمت upload Package ، آپلود کنیم .

بعد از آپلود  صفحه ای مانند صفحه زیر نمایش داده میشه

6

 

با اجرا کردن دستور بالا در قسمت tools>Nuget Package Manager >Package Manager Console  میتونیم ناگتمون رو نصب کنیم