یک نکتهی تکمیلی: تاثیر منفی VS 2017 به روز رسانی نشده بر روی افزونهی #C مخصوص VSCode در ویندوز
اگر VS 2017 خود را به روز رسانی نکرده باشید، ممکن است با باز کردن یک پروژهی NET Core. در VSCode یک چنین خطاهایی را مشاهده کنید:
علت اینجا است که افزونهی #C مخصوص VSCode، در صورت نصب بودن VS 2017، سعی میکند از موتور MSBuild آن استفاده کند؛ بجای نمونهای که به همراه خودش نصب میشود:
همانطور که در این لاگ نیز مشخص است، Registered MSBuild را از نمونهی قدیمی نصب شدهی VS 2017 انتخاب کردهاست (و نه از پوشهی omnisharp\msbuild\15.0\Bin مخصوص خودش).
بنابراین اگر VS 2017 خود را به روز رسانی نکرده باشید، این موتور قدیمی MSBuild، سبب تداخل خواهد شد و خطاهایی مانند عدم یافت شدن نوع void ،int و امثال آنرا مشاهده میکنید. در اینجا یا باید VS 2017 خود را به روز رسانی کنید و یا کلا آنرا از سیستم حذف کنید. البته قرار است این تداخل در نگارش بعدی این افزونه برطرف شود.
روش مشاهدهی لاگ فوق نیز به صورت ذیل است:
اگر VS 2017 خود را به روز رسانی نکرده باشید، ممکن است با باز کردن یک پروژهی NET Core. در VSCode یک چنین خطاهایی را مشاهده کنید:
Predefined type 'System.Void' is not defined or imported #1855
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Located 2 MSBuild instance(s) 1: Visual Studio Enterprise 2017 15.0.26228.4 - "e:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin" 2: StandAlone 15.0 - "C:\Users\xyz\.vscode\extensions\ms-vscode.csharp-1.13.0\.omnisharp\msbuild\15.0\Bin" [info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Registered MSBuild instance: Visual Studio Enterprise 2017 15.0.26228.4 - "e:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin"
بنابراین اگر VS 2017 خود را به روز رسانی نکرده باشید، این موتور قدیمی MSBuild، سبب تداخل خواهد شد و خطاهایی مانند عدم یافت شدن نوع void ،int و امثال آنرا مشاهده میکنید. در اینجا یا باید VS 2017 خود را به روز رسانی کنید و یا کلا آنرا از سیستم حذف کنید. البته قرار است این تداخل در نگارش بعدی این افزونه برطرف شود.
روش مشاهدهی لاگ فوق نیز به صورت ذیل است:
VS Code -> select View->Output -> select "OmniSharp Log"
این مشکل در نگارش 1.13.1 برطرف شدهاست.