راهنمای قدم به قدم برای گسترش خودکار ناپ کامرس با git بر روی azure
0) git-repository شما. به مخزن خود نیاز دارید و نمی توانید تنها ناپ کامرس را بسازید. این برای تاریع "انتشار" پیش فرض بر روی VS2013 طراحی شده است. من از bitbucket استفاده کردم و با مخزن رسمی خود همسان نگه داشته شده است.
1) نصب git بر روی azure
خودآموز: https://azure.microsoft.com/da-dk/documentation/articles/web-sites-publish-source-control/ ویدیو بسیار مفید: http://channel9.msdn.com/Shows/Azure-Friday/What-is-Kudu-Azure-Web-Sites-Deployment-with-David-Ebbo
2) آماده سازی برای گسترش محلی
وقتی مطمئن شدید که ساختارهای خودکار عمل می کنند، میتوانیم اسکریپت های خود را شخصی سازی کنیم. این مرحله مورد نیاز است چون ساختارهای خودکار پیش فرض، تنها پروژه های Nop.Web را می سازند. مشکل این است که اینها سایت مدیر را نمی سازند و هیچ افزونه ای ساخته نمی شود. شما نمیتوانید به پلاگین مراجعه کنید زیرا این کار باعث ایجاد ارجاع های چرخشی می شود.
بنابراین در حال حاضر ما نیاز به ایجاد سفارشی ساختارها داریم، این مراحل نصب است. (همچنین اشاره به مکان های دیگر)
2.1 - نصب NodeJs: https://nodejs.org 2.2 - نصب Azure CLI: https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-install/
3) دریافت nuget برای کار در سطح خط فرمان.
رفتار پیش فرض اسکریپت KUDO برای بررسی بسته های Nuget است.
3.1 برای دسترسی به فایل Nuget.exe میتوانید از اینجا دانلود کنید: https://docs.nuget.org/consume/command-line-reference
شما همچنین می توانید "فعالسازی خودکار بازسازی بسته های nuget" را در VS2013 خود فعال کنید و به طور خودکار به پروژه شما اضافه می شود.
3.2 - اطمینان حاصل کنید که Nuget در مسیر است. فایل nuget.exe را به مکان مورد نظر کپی کنید (من از c: / Program Files / Nuget / Nuget.exe استفاده می کنم). آن را به متغیر مسیر محیط اضافه کنید.
3.3 - با اجرای cmd.exe و نوشتن nuget تأیید کنید که Nuget در مسیر خود است. شما باید گزینه های فرمان را ببینید.
4) اسکریپت های گسترش را بصورت محلی ایجاد کنید.
4.1 - "Microsoft Azure Command Prompt" را باز کنید.
4.2 - به شاخه src پروژه خود بروید.
4.3 - azure script generator را اجرا نمایید. http://blog.amitapple.com/post/38418009331/azurewebsitecustomdeploymentpart2/#.VWyO3qikLjQ)
بنابراین شما می توانید چیزی مانند:
azure site deploymentscript --aspWAP Presentation\Nop.Web\Nop.Web.csproj -s NopCommerce.sln
4.4 - تأیید کنید که 2 فایل ایجاد کرده است: (در ریشه مخزن محلی شما) .deployment deploy.cmd
5) اجرای اسکریپت تولید شده
5.1 - شما باید فایل .deployment و deploy.cmd را در پوشه ریشه git نگه دارید
5.2 - تغییر deploy.cmd به عنوان٪ DEPLOYMENT SOURCE٪ متغیر حاوی ریشه مخزن git است. در نتیجه من %DEPLOYMENT_SOURCE%\src\Presentation\Nop.Web\Nop.Web.csproj را بجای %DEPLOYMENT_SOURCE%\Presentation\Nop.Web\Nop.Web.csproj اضافه میکنم. تمام مسیرها در بخش استقرار باید اصلاح شوند.
5.3 - اجرای deploy.cmd برای دیدن اینکه آیا اسکریپت استقرار پیش فرض به صورت محلی کار می کند. این باید یک پوشه \ artifact درست در خارج از مخزن git خود ایجاد کند.
6) اسکریپت استقرار را سفارشی کنید
بنابراین در حال حاضر ما در بخش نهایی هستیم :) این جایی است که تمام کارهایی که انجام می شود، پرداخت می شود :) ما می خواهیم قطعه زیر را تغییر دهیم:
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::Deployment :: ----------
echo Handling .NET Web Application deployment.
:: 1.Restore NuGet packages IF /I "NopCommerce.sln" NEQ "" ( call :ExecuteCmd nuget restore "%DEPLOYMENT_SOURCE%\NopCommerce.sln" IF !ERRORLEVEL! NEQ 0 goto error )
:: 2.Build to the temporary path IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" ( call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Presentation\Nop.Web\Nop.Web.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="%DEPLOYMENT_TEMP%";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% ) ELSE ( call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Presentation\Nop.Web\Nop.Web.csproj" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% )
IF !ERRORLEVEL! NEQ 0 goto error
:: 3.KuduSync IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" ( call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_TEMP%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd" IF !ERRORLEVEL! NEQ 0 goto error )
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
بنابراین بین no :: 1 و :: 2 این دستورات ما برای ساخت پلاگین ها قرار می گیرند.
یک مثال برای اولین پلاگین:
::1.01 در مسیر موقت نقش مشتریان افزونه را بسازید call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\src\Plugins\Nop.Plugin.DiscountRules.CustomerRoles\Nop.Plugin.DiscountRules.CustomerRoles.csproj" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS%
call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\src\Plugins\Nop.Plugin.DiscountRules.CustomerRoles\Nop.Plugin.DiscountRules.CustomerRoles.csproj" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS%
در حال حاضر افزونه ساخته می شود زمانی که شما اجرا اسکریپت را اجرا نمایید :)
طراحی فروشگاه خود را با امکانات بیشمار و قالب اختصاصی به ما بسپارید. نمونه پروژه های اجرا شده ما را ببینید.
ناپ شاپ با برگزاری دوره های آموزشی در دانشگاهها، ارائه راهنمای فارسی، انجمن گفتگو، فیلم های آموشی، وبلاگ، طراحی انواع پلاگین ها و راه اندازی انواع فروشگاه اینترنتی، در توسعه ناپ کامرس در ایران تلاش میکند.