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

دیدگاه‌ها