نوشتارهای تگ: Visual Studio

VS.2017 و Xamarin - مشکلات پس از نصب و نحوه رفع آن‌ها

علی بهرامی‌نژاد - - زمان تقریبی مطالعه: 3 دقیقه

خب همانطور که خبر دارین این هفته Visual Studio 2017 نسخه نهاییش ارائه شد. ویژوال استودیویی که نسبت به قبل خیلی سریعتر، سبکتر و در کل بهتر شده است. شاید اولین تغییری که بهش بر بخوریم Installer جدید و سریع اون هست که به راحتی اجازه میده تنها چیزی که لازم داریم و نصب کنیم و مثل نسخه‌های قبلی نصب اون خیلی خیلی طولانی نیست و در عرض چند دقیقه نصب خواهد شد.

VS 2017 new setup

من در نصب و راه اندازی Xamarin توی VS 2017 به یسری مشکل برخوردم:

چون از قبل Android SDK, NDK و Java JDK 1.8 رو نصب داشتم، در زمان نصب تیک مربوط به نصب اون‌ها رو از Installer برداشتم که مجدد دانلود نشوند. ( البته که تحریم هستیم و دانلود نخواهد شد! ). و چون آخرین نسخه Xamarin رو چند روز قبل دانلود کرده بودم ترجیح دادم نصب Xamarin هم مجزا انجام بدم.

همه چیز به خوبی پیش رفت؛ اما وقتی نصب Xamarin و باز کردم، چون قبل از ارائه نسخه نهایی 2017 فایل نصب Xamarin و دانلود کرده بودم؛ موقع نصب امکان شناسایی VS 2017 و نداشت. و به همین دلیل از طریق نصب VS زامارین و آنلاین نصب کردم.

همه چیز به نظر خوب بود، اما وقتی سعی کردم یه پروژه جدید از نوع Xamarin.Forms ایجاد کنم متاسفانه Visual Studio به شکل عجیبی توی یه Loop افتاد و بعد از گذشت چندین دقیقه هم اتفاقی رخ نداد!

به ناچار فایل‌های Log مربوط به Xamarin رو از مسیر زیر پیدا و بررسی کردم:

C:\Users\username\AppData\Local\Xamarin\Logs\15.0

داخل یکی از فایل‌ها که مربوط به monodroid میشد؛ چنین گزارشی دیدم:

MonoDroidLog: Information: 0: [I:sdk]:                  Looking for Android SDK..
MonoDroidLog: Information: 0: [I:sdk]:                    Key HKCU\SOFTWARE\Xamarin\VisualStudio\15.0_30cfbabd\Android\AndroidSdkDirectory not found.
MonoDroidLog: Information: 0: [I:sdk]:                    Key HKLM\SOFTWARE\Xamarin\VisualStudio\15.0_30cfbabd\Android\AndroidSdkDirectory not found.
MonoDroidLog: Information: 0: [I:sdk]:                    Key HKCU\SOFTWARE\Xamarin\MonoAndroid\PrivateAndroidSdkPath not found.
MonoDroidLog: Information: 0: [I:sdk]:                    Key HKCU\SOFTWARE\Android SDK Tools\Path not found.
MonoDroidLog: Information: 0: [I:sdk]:                    Key HKLM\SOFTWARE\Android SDK Tools\Path not found.
MonoDroidLog: Information: 0: [I:sdk]:                  Looking for Android NDK..

چیزی که بخوبی از این گزارش میشه متوجه شد؛ این هست که زامارین در چندین تلاش مداوم سعی در پیدا کردن مسیرهای Android SDK, NDK و حتی Java JDK هست.

در خود Visual Studio تنظیماتی برای تنظیم کردن مسیرهای SDKهای اندروید در Registiry ویندوز وجود دارد، سعی کردم از مسیر Tools -> Options -> Xamarin -> Android Settings مسیرها رو تنظیم کنم اما این صفحه تنظیمات هم مثل ساخت پروژه به مشکل برمیخورد و تنها به نمایش یک Waiting ساده قناعت میکرد.

برای رفع مشکل؛ مطابق فایل Log؛ به مسیر به مسیرهای کلیدهای Registry اعلام شده رفتم؛ طبق انتظار به غیر از کلید مربوط به JDK متاسفانه کلید‌های مورد نظر تعریف شده بودند. با تعریف این کلیدها و دادن مسیرهای SDK و NDK مشکل مرتفع شد. مسیرهای برای تنظیم کردن به شکل زیر هستند:

مسیر کلیدها:

HKEY_CURRENT_USER\SOFTWARE\XAMARIN\VisualStudio\15.0_30cfbabd\Android

نکته؛ در مسیر بالا، مقدار 15.0_30cfbabd ممکن است برای رایانه شما متفاوت باشد؛ صرفا وجود مقدار 15.0 در ابتدای اون نشون دهنده محل تنظیمات SDK اندروید برای VS شما است.

کلیدها:

نام کلید نوع کلید مقدار کلید
AndroidSdkDirectory string your-sdk-path
AndroidNdkDirectory string your-ndk-path
JavaSDKDirectory string your-java-sdk-path


نمونه کلیدهای تعریف شده:

VS 2017 new setup

ادامه ...

نصب یا دریافت آپدیت‌های Xamarin

علی بهرامی‌نژاد - - زمان تقریبی مطالعه: 1 دقیقه

Xamarin Logo

Xamarin آپدیت‌هایش را در سایت Xamarin Releases معرفی می‌کند. اگر از کاربران Visual Studio باشید، برای نصب یا Update زامارین 2 راه پیش روی شماست:

  1. استفاده از Visual Studio جهت دریافت خودکار Update
  2. دانلود مستقیم آپدیت‌ها از زامارین

در زمان نه چندان دور که هنوز Xamarin توسط Microsoft خریداری نشده بود ( یا حتی چند ماه پس از خرید )، لینک‌های دانلود برروی سرورهای Amazon CloudFront قرار می‌گرفتند و متاسفانه در زمان دانلود خطای عدم دسترسی برای IP ایران مشاهده میشد.

چند وقتی هست که خوشبختانه فایل‌ها از CloudFront به Azure مایکروسافت منتقل شدن و به راحتی میشه اونها رو دانلود کرد.

اگر به آدرس https://releases.xamarin.com در قسمتی از سایت لیست آخرین releaseها قرار گرفته اند. برای مثال در تصویر زیر یک خبر مربوط به Release Cycle 8 قابل مشاهده است.

Xamarin Cycle Release 8

اگر برای مثال به صفحه یکی از این Cycle Releaseها مراجعه کنیم. ( مثلاً این) در قسمتی از صفحه مانند تصویر زیر شماره نسخه و نام محصول Release شده قابل مشاهده است.

Xamarin Cycle Release 8

مثلاً برای نسخه 4.2.1.73 برای ویژوال استودیو کافیست شماره نسخه را در URL زیر جایگزین کنید و Update و مورد نظر و دریافت کنید.

https://xamarin.azureedge.net/XamarinforVisualStudio/Windows/Xamarin.VisualStudio_{version}.msi

نسخه 4.2.1.73

https://xamarin.azureedge.net/XamarinforVisualStudio/Windows/Xamarin.VisualStudio_4.2.1.73.msi

نسخه ی alpha

https://xamarin.azureedge.net/XamarinforVisualStudio/Windows/Xamarin.VisualStudio_4.3.0.281.msi

ادامه ...

تنظیم کردن Reference Path برای تمامی پروژه‌های موجود در Solutionهای Visual Studio

علی بهرامی‌نژاد - - زمان تقریبی مطالعه: 1 دقیقه

Sample Solution

وقتی Solution بزرگی داخل Visual Studio داشته باشیم ممکنه با مشکل تنظیم کردن Reference Path برای تمای پروژه‌های موجود مواجه بشیم، برای اینکور مجبوریم به صفحه Properties پروژه‌ها بریم و Reference Path رو تنظیم کنیم که این خودش کار بسیار زمان بر و اعصاب خوردکنی هست.

Define Reference Path

با اسفتاده از Powershell می‌تونیم به راحتی مسیر Reference Pathها رو برای تمامی پروژه‌ها ست کنیم. برای اینکار کافیه Package Manager Console رو از منو Tools->Nuget Package Manager->Package Manager Console باز کنیم.

Package Manager Console

و اسکریپت Powershell زیر و داخل اون اجرا کنیم.

$path = [System.IO.Path]; 
foreach ($proj in get-project -all) {   $proj.Properties.Item("ReferencePath").Value="$($path::GetDirectoryName($proj.filename))\..\libs" }


نمونه اجرا شده :

Package Manager Console


اسکریپت بالا مناسب برای مسیرهای نسبی هستند، اگر مسیر مستقیم برای پروژه میخواید تنظیم کنید کافیه به جای

$($path::GetDirectoryName($proj.filename))\..\libs

مسیر مستقیم خودتون رو بنویسد.

منبع

Adding Reference Paths to all Projects in Solution Visual Studio

ادامه ...

فعال‌سازی intellisense/autocomplete کد برای فایل‌های axml اندروید در Visual Studio

علی بهرامی‌نژاد - - زمان تقریبی مطالعه: 1 دقیقه

برای ویرایش فایل‌های axml اندروید در Xamarin For Visual Studio دو راه وجود دارد:

  1. استفاده از ابزار ابزار طراحی گرافیکی
  2. ویرایش متنی فایل axml

در حالت اول به راحتی با استفاده از ابزار GUI که Xamarin تهیه کرده است عمده تغییرات قابل اعمال است، اما اگر قصد این را داشته باشیم که مستقیم فایل‌ها را در حالت متنی ویرایش کنیم مشاهده خواهیم کرد که هیچ intellisense یا autocomplete کد، به کاربر ارائه نمی‌شود.

Visual Studio - Xamarin - intellisense won't work

همانطور که در شکل بالا نیز مشخص است؛ هیچ پیشنهاد کد یا راهنمایی برای تکمیل کردن کد در xml editor نمایش داده نمیشود. خوشبختانه این مورد توسط Xamarin پشتیبانی میشود و تنها باید آنرا فعال کنیم. در ادامه مطلب نحوه فعال سازی آن شرح داده خواهد شد.

ادامه ...

رفع مشکل عدم وجود حافظه خالی 2048 مگابایتی RAM در اجرای Visual Studio Emulator For Android

علی بهرامی‌نژاد - - زمان تقریبی مطالعه: 2 دقیقه

یکی از Emulatorهای خوب عرضه شده جهت تست و توسعه برنامه‌های اندروید برروی سیستم عامل ویندوز؛ ابزار Visual Sudio Emulator For Android می‌باشد.

از جمله ویژ‌گی‌های این ابزار میتوان به موارد زیر اشاره کرد:

  • کاملاً رایگان
  • هماهنگی کامل با Visual Studio
  • امکان استفاده در Android Studio، Eclipse یا هر ابزار دیگری که از ADB پشتیبانی می‌کند
  • کارایی خوب بدلیل استفاده از Hyper-V ویندوز

Microsoft Visual Emulator For Android - 2048 MB Error

کاربران در استفاده از این ابزار ممکن است با خطای Not enough memory is available in the system to start an emulator that uses 2048 MB of startup RAM مواجه شوند. بصورت کلی دو راه برای رفع این مشکل وجود دارد:

  1. افزایش حافظه RAM
  2. بستن برنامه‌های در حال اجرا جهت کاهش حافظه مصرفی

اما اگر هیچ یک از دو راه بالا امکان پذیر نبود، چه باید کرد؟ در ادامه مطلب به بررسی و رفع این مشکل می‌پردازیم.


ادامه ...