بررسی روش ارتقاء به NET Core 1.1.
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: شش دقیقه

نگارش پایدار NET Core 1.1. روز قبل منتشر شد. در ادامه نحوه‌ی ارتقاء پروژه‌‌های نگارش 1.0 RTM را به این نگارش بررسی خواهیم کرد.


دریافت نصاب NET Core 1.1.

برای این منظور به آدرس https://www.microsoft.com/net/download/core مراجعه کرده و فایل NET Core 1.1 SDK - Installer. را دریافت و نصب کنید. برای ظاهر شدن این گزینه باید حالت Current را بجای LTS (Long Term Support) انتخاب کرد:


همچنین در اینجا بسته NET Core 1.1 runtime - Installer. را هم جداگانه می‌توان دریافت و نصب کرد.


به روز رسانی فایل‌های global.json پروژه‌ها

اولین کاری را که باید پس از نصب نگارش‌های جدید NET Core. انجام داد، به روز رسانی شماره نگارش SDK درج شده‌ی در فایل‌های global.json تمام پروژه‌های موجود است. در غیراینصورت NuGet بسته‌های جدید مرتبط با آن‌ها را دریافت نخواهد کرد و آن‌ها را در لیست به روز شده‌ها نخواهید یافت.
برای این منظور خط فرمان را گشوده و دستور ذیل را صادر کنید:
 C:\>dotnet --version
1.0.0-preview2-1-003177
خروجی آن عبارتی است که باید قسمت نگارش SDK درج شود:
{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-1-003177"
  }
}


اصلاح فایل project.json پس از به روز رسانی فایل global.json

در ادامه باید فایل project.json نیز اندکی ویرایش شود تا شماره platform جدید را نیز درج کند. همچنین محل قرارگیری یکسری از بسته‌ها نیز باید تغییر کنند. در غیر اینصورت با اولین کامپایل Solution چنین خطاهایی را دریافت خواهید کرد:
 Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.
The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section.
برای رفع این مشکل، عبارت netcoreapp را در Solution جاری جستجو کرده و آن‌ها را به نحو ذیل تغییر دهید:
"frameworks": {
    "netcoreapp1.1": {
        "dependencies": {
            "Microsoft.NETCore.App": {
                "type": "platform",
                "version": "1.1.0"
            }
        },
        "imports": [
            "dnxcore50",
            "portable-net45+win8"
        ]
    }
},

یک نکته: اگر هنوز Microsoft.NETCore.App را در لیست dependencies ابتدای فایل project.json دارید، آن‌را حذف کنید؛ چون در قسمت frameworks فوق درج شده‌است. در غیراینصورت پیام تکراری بودن این کلید را دریافت خواهید کرد.

پس از طی دو مرحله‌ی فوق، یکبار پروژه را بسته و مجددا باز کنید.


به روز رسانی بسته‌های نیوگت پایدار

قبل از هر کاری مطمئن شوید که آخرین بسته‌ی خود NuGet را نیز نصب کرده‌اید (مهم). به روز رسانی‌های اخیر آن بیشتر در جهت سازگاری با پروژه‌های NET Core. است.
https://dist.nuget.org/index.html

در ادامه برای به روز رسانی بسته‌های نیوگت، می‌توان بر روی گره References کلیک راست کرد و سپس انتخاب گزینه‌ی Manage NuGet Packages و در آخر انتخاب برگه‌ی Updates و انتخاب کتابخانه‌های به روز شده. این روش برای حالت داشتن چندین پروژه در یک Solution اندکی کند است.


روش سریعتر که تمام پروژه‌ها را نیز به صورت خودکار بررسی و به روز می‌کند، مراجعه به کنسول پاورشل نیوگت و سپس صدور دستور ذیل است:
 PM> Update-Package
اگر در میان کار خطایی را دریافت کردید، این دستور را مجددا اجرا کنید (جهت اطمینان حداقل دوبار این دستور را صادر کنید).
به علاوه پس از پایان کار، یکبار به طور کامل ویژوال استودیو را بسته و مجددا باز کنید. سپس این دستور را یکبار دیگر هم صادر کنید.


به روز رسانی بسته‌های نیوگت آزمایشی

یکسری از بسته‌ها مانند Microsoft.AspNetCore.Razor.Tools تنها با انتخاب حالت include prereleases ظاهر می‌شوند که آن‌ها را نیز باید به روز کرد:



تغییر مهم ابزارهای EF Core

در کل Solution عبارت Microsoft.EntityFrameworkCore.Tools را جستجو کرده و با نام جدید Microsoft.EntityFrameworkCore.Tools.DotNet جایگزین کنید.


در آخر یک نمونه فایل project.json به روز شده‌ی یک برنامه‌ی ASP.NET Core 1.1 را در ذیل مشاهده می‌کنید:
{
    "dependencies": {
        "Microsoft.AspNetCore.Diagnostics": "1.1.0",
        "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.1.0",
        "Microsoft.AspNetCore.Http.Extensions": "1.1.0",
        "Microsoft.AspNetCore.Mvc": "1.1.0",
        "Microsoft.AspNetCore.Mvc.Core": "1.1.0",
        "Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.0",
        "Microsoft.AspNetCore.Razor.Runtime": "1.1.0",
        "Microsoft.AspNetCore.Razor.Tools": {
            "version": "1.1.0-preview4-final",
            "type": "build"
        },
        "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
        "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
        "Microsoft.AspNetCore.Session": "1.1.0",
        "Microsoft.AspNetCore.SpaServices": "1.0.0-beta-000019",
        "Microsoft.AspNetCore.StaticFiles": "1.1.0",
        "Microsoft.EntityFrameworkCore": "1.1.0",
        "Microsoft.EntityFrameworkCore.InMemory": "1.1.0",
        "Microsoft.EntityFrameworkCore.Tools.DotNet": {
            "version": "1.1.0-preview4-final",
            "type": "build"
        },
        "Microsoft.Extensions.Configuration.Binder": "1.1.0",
        "Microsoft.Extensions.Configuration.Json": "1.1.0",
        "Microsoft.Extensions.Logging.Console": "1.1.0",
        "Microsoft.Extensions.Logging.Debug": "1.1.0",
        "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
            "version": "1.1.0-preview4-final",
            "type": "build"
        },
        "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
            "version": "1.1.0-preview4-final",
            "type": "build"
        }
    },
 
    "tools": {
        "BundlerMinifier.Core": "2.2.301",
        "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
        "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
            "version": "1.1.0-preview4-final",
            "imports": [
                "portable-net45+win8"
            ]
        },
        "Microsoft.EntityFrameworkCore.Tools.DotNet": {
            "version": "1.1.0-preview4-final",
            "imports": [
                "portable-net45+win8"
            ]
        },
        "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
    },
 
    "frameworks": {
        "netcoreapp1.1": {
            "dependencies": {
                "Microsoft.NETCore.App": {
                    "type": "platform",
                    "version": "1.1.0"
                }
            },
            "imports": [
                "dnxcore50",
                "portable-net45+win8"
            ]
        }
    },
 
    "buildOptions": {
        "emitEntryPoint": true,
        "preserveCompilationContext": true
    },
 
    "runtimeOptions": {
        "configProperties": {
            "System.GC.Server": true
        }
    },
 
    "publishOptions": {
        "include": [
            "wwwroot",
            "Features",
            "appsettings.json",
            "web.config"
        ]
    },
 
    "configurations": {
        "Release": {
            "buildOptions": {
                "optimize": true,
                "platform": "anycpu"
            }
        }
    },
 
    "scripts": {
        "precompile": [
            "dotnet bundle"
        ],
        "prepublish": [
            //"bower install"
        ],
        "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
    }
}


به روز رسانی پروژه‌ی Test

اگر از MSTest برای انجام آزمون‌های واحد استفاده می‌کنید، تغییرات فایل project.json آن نیز شامل تغییر شماره نگارش NETStandard.Library به 1.6.1 است و همچنین خود بسته‌های mstest نیز به روز شده‌اند. به علاوه قسمت frameworks آن نیز باید همانند مطالبی که عنوان شد، به روز شود:
{
    "version": "1.0.0-*",
 
    "testRunner": "mstest",
    "dependencies": {
        "Microsoft.EntityFrameworkCore": "1.1.0",
        "Microsoft.EntityFrameworkCore.InMemory": "1.1.0",
        "NETStandard.Library": "1.6.1",
        "dotnet-test-mstest": "1.1.2-preview",
        "MSTest.TestFramework": "1.0.6-preview"
    },
 
    "frameworks": {
        "netcoreapp1.1": {
            "dependencies": {
                "Microsoft.NETCore.App": {
                    "type": "platform",
                    "version": "1.1.0"
                }
            },
            "imports": [
                "dnxcore50",
                "portable-net45+win8"
            ]
        }
    }
}
  • #
    ‫۷ سال و ۱۰ ماه قبل، شنبه ۲۹ آبان ۱۳۹۵، ساعت ۱۵:۵۶
    پس از به‌روزرسانی و توزیع در IIS با خطای :
    Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AspNetCore.Hosting, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
       at Sample1.Web.Program.Main(String[] args)
    مواجه شدم.

    و جهت رفع مشکل :


    اما خطا همچنان پابرجاست.

    پکیج هایی که باید نصب باشد :


    و فایل Project.json:


    {
      "dependencies": {
        "Sample1.DataLayer": "1.0.0-*",
        "Sample1.PrsLayer.SysB.UserMg": "1.0.0-*",
        "Sample1.PrsLayer.SysBase": "1.0.0-*",
        "Sample1.PrsLayer.SysS.Setting": "1.0.0-*",
        "Sample1.SrvLayer.SysB.UserMg": "1.0.0-*",
        "Sample1.SrvLayer.SysBase": "1.0.0-*",
        "Sample1.SrvLayer.SysS.Setting": "1.0.0-*",
        "CoreCompat.System.Drawing": "1.0.0-beta006",
        "Sample1.ExternalResources": "1.0.0-*",
        "Sample1.SrvLayer.SysA.BookMg": "1.0.0-*",
        "Sample1.SrvLayer.UploadService": "1.0.0-*",
        "Sample1.PrsLayer.SysA.BookMg": "1.0.0-*",
        "Sample1.IocConfig": "1.0.0-*",
        "Sample1.MapperConfig": "1.0.0-*",
        "Sample1.PrsLayer.SysU.UiMg": "1.0.0-*",
        "Sample1.SrvLayer.SysU.UiMg": "1.0.0-*",
        "Sample1.PrsLayer.SysI.SubscribeNewsletter": "1.0.0-*",
        "Sample1.SrvLayer.SysI.SubscribeNewsletter": "1.0.0-*",
        "Wangkanai.Detection": "1.0.0-*",
        "Wangkanai.Detection.Abstractions": "1.0.0-*",
        "Wangkanai.Detection.Device": "1.0.0-*",
        "Wangkanai.Detection.Engine": "1.0.0-*",
        "Wangkanai.Detection.Platform": "1.0.0-*",
        "Wangkanai.Detection.Browser": "1.0.0-*",
        "StructureMap.Microsoft.DependencyInjection": "1.2.0",
        "CacheManager.Core": "0.9.1",
        "CacheManager.Microsoft.Extensions.Caching.Memory": "0.9.1",
        "CacheManager.Serialization.Json": "0.9.1",
        "Newtonsoft.Json": "9.0.2-beta1",
        "Microsoft.AspNetCore.SpaServices": "1.0.0-beta-000019",
        "AutoMapper": "5.1.1",
        "EFSecondLevelCache.Core": "1.0.1",
        "Microsoft.AspNetCore.Diagnostics.Elm": "0.2.0",
        "Microsoft.AspNetCore.Mvc": "1.1.0",
        "Microsoft.AspNetCore.Mvc.Localization": "1.1.0",
        "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
        "Microsoft.AspNetCore.Session": "1.1.0",
        "Microsoft.AspNetCore.StaticFiles": "1.1.0",
        "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
        "Microsoft.Extensions.Configuration.Json": "1.1.0",
        "Microsoft.Extensions.FileProviders.Embedded": "1.1.0",
        "Microsoft.Extensions.Logging.Console": "1.1.0",
        "Microsoft.Extensions.Logging.Debug": "1.1.0",
        "Microsoft.Net.Http.Headers": "1.1.0",
        "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0",
        "System.Globalization": "4.3.0",
        "System.IO": "4.3.0",
        "System.Linq": "4.3.0",
        "System.Reflection": "4.3.0",
        "System.Runtime": "4.3.0",
        "System.Runtime.Extensions": "4.3.0",
        "System.Runtime.WindowsRuntime": "4.3.0",
        "System.Text.RegularExpressions": "4.3.0",
        "System.Threading.Tasks": "4.3.0",
        "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
          "version": "1.1.0-preview4-final",
          "type": "build"
        },
        "Elmah.Io.AspNetCore": "1.0.1-pre-24",
        "Elmah.Io.Extensions.Logging": "1.0.17-pre",
        "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
          "version": "1.1.0-preview4-final",
          "type": "build"
        }
      },
      "tools": {
        "Microsoft.EntityFrameworkCore.Tools.DotNet": {
          "version": "1.1.0-preview4-final",
          "imports": [
            "portable-net45+win8"
          ]
        },
        "Microsoft.Extensions.SecretManager.Tools": "1.1.0-preview4-final",
        "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
          "version": "1.1.0-preview4-final",
          "imports": [
            "portable-net45+win8"
          ]
        },
        "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
      },
      "frameworks": {
        "netcoreapp1.1": {
          "dependencies": {
            "Microsoft.NETCore.App": {
              "type": "platform",
              "version": "1.1.0"
            }
          },
          "imports": [
            "dotnet5.6",
            "portable-net45+win8"
          ]
        }
      },
      "buildOptions": {
        "emitEntryPoint": true,
        "preserveCompilationContext": true,
        "embed": "Views/**/*.cshtml,Areas/**/Views/**/*.cshtml",
        "define": [ "DEBUG" ]
      },
      "runtimeOptions": {
        "configProperties": {
          "System.GC.Server": true
        }
      },
      "publishOptions": {
        "include": [
          "wwwroot",
          "Views",
          "Areas/**/Views",
          "appsettings.json",
          "web.config"
        ]
      },
      "configurations": {
        "Release": {
          "buildOptions": {
            "optimize": true,
            "platform": "anycpu"
          }
        }
      },
      "scripts": {
        "precompile": [
          //"dotnet bundle"
        ],
        "prepublish": [
          //"bower install"
        ],
        "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
      }
    }
    • #
      ‫۷ سال و ۱۰ ماه قبل، شنبه ۲۹ آبان ۱۳۹۵، ساعت ۱۷:۳۵
      - در مسیر Properties\PublishProfiles پروژه، فایل pubxml. آن باید دارای چنین مدخلی باشد (اگر این فایل پیشتر ایجاد شده، احتمالا شماره آن 1.1 نیست):
      <PublishFramework>netcoreapp1.1</PublishFramework>
      در این حالت فایل‌های مرتبط صحیحی را در پوشه‌ی publish خواهید داشت (و نیازی به کپی دستی آن‌ها نخواهد بود).
      - وابستگی ویندوز سرور آن علاوه بر نصب NET Core.، نصب Visual C++ Redistributable for Visual Studio 2015 است. بسته‌ای را که در اینجا لینک دادند، قدیمی است. آدرس بسته‌ی به روز و جدید آن (با شماره نگارش 14.0.24215 ^)
      • #
        ‫۷ سال و ۱۰ ماه قبل، شنبه ۲۹ آبان ۱۳۹۵، ساعت ۱۹:۵۸
        بله به این مورد برخورد کردم اما قبل از اینکه publish صورت گیرد خطای نسخه 1.0 رو دریافت خواهید کرد و باید اصطلاحی که شما فرمودید را اعمال و سپس توزیع کرد.
        اما پس از اعمال این مورد هم مشکل برطرف نمیشه.
        توزیع بدون فایل Microsoft.AspNetCore.Hosting.dll انجام میشود.
        در نسخه قبلی 1.0 هم همینطور بوده که با کپی کردن فایل از مسیر هایی (که در نظر قبلی مشخص کردم ) به مسیر فایل‌های توزیع شده مشکل رفع میشد.
        برای مثال فایل هایی مانند :
         Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
        Microsoft.AspNetCore.Server.IISIntegration.dll
        هم نیاز به کپی در مسیر توزیع فایل‌های پروژه داشتند.
        • #
          ‫۷ سال و ۱۰ ماه قبل، شنبه ۲۹ آبان ۱۳۹۵، ساعت ۲۱:۳۴
          «توزیع بدون فایل Microsoft.AspNetCore.Hosting.dll انجام میشود.»
          من حداقل چنین مشکلی را ندارم:


          فایل  Properties\PublishProfiles\Test.pubxml مورد استفاده هم چنین محتوایی را دارد:

          <?xml version="1.0" encoding="utf-8"?>
          <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
            <PropertyGroup>
              <WebPublishMethod>FileSystem</WebPublishMethod>
              <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
              <LastUsedPlatform>Any CPU</LastUsedPlatform>
              <SiteUrlToLaunchAfterPublish />
              <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
              <ExcludeApp_Data>False</ExcludeApp_Data>
              <PublishFramework>netcoreapp1.1</PublishFramework>
              <UsePowerShell>True</UsePowerShell>
              <publishUrl>.\bin\Release\PublishOutput</publishUrl>
              <DeleteExistingFiles>False</DeleteExistingFiles>
            </PropertyGroup>
          </Project>

          • #
            ‫۷ سال و ۱۰ ماه قبل، یکشنبه ۳۰ آبان ۱۳۹۵، ساعت ۱۶:۳۹
            بله کاملا حرف شما درسته مشکل : «توزیع بدون فایل Microsoft.AspNetCore.Hosting.dll انجام میشود.»

             از project.json پروژه بود که با اضافه کردن سه مورد زیر در dependencies مشکل برطرف گردید.

            "Microsoft.AspNetCore.Hosting": "1.1.0",
            "Microsoft.AspNetCore.Hosting.Server.Abstractions": "1.1.0",
            "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
  • #
    ‫۷ سال و ۱۰ ماه قبل، یکشنبه ۳۰ آبان ۱۳۹۵، ساعت ۱۸:۰۲
    مورد دیگه ای که وجود داره عدم اجرای دستورات Migration در PMC (package manager console) می‌باشد.

    طبق بروزرسانی:
    «در کل Solution عبارت Microsoft.EntityFrameworkCore.Tools را جستجو کرده و با نام جدید Microsoft.EntityFrameworkCore.Tools.DotNet جایگزین کنید





    • #
      ‫۷ سال و ۱۰ ماه قبل، یکشنبه ۳۰ آبان ۱۳۹۵، ساعت ۱۸:۴۴
      بسته Microsoft.EntityFrameworkCore.Tools.DotNet برای اجرای فرامین Migrations در EF Core 1.1 کافی نیست. اطلاعات بیشتر
  • #
    ‫۷ سال و ۱۰ ماه قبل، دوشنبه ۱ آذر ۱۳۹۵، ساعت ۰۱:۱۰
    برای نصب .NETCore روی لینوکس ابتدا باید نسخه‌های قبلی رو حذف کنید، اسکریپ مربوط به حذف در این آدرس قرار دارد.
    (اسکریپت را در فایل متنی (برای مثال scriptFile ) قرار دهید سپس با دستور chmod u+rx scriptFile قابلیت اجرایی بهش بدید و  اجراش کنید sudo ./scriptFile)
    در مرحله بعد میتوانید پکیج‌ها را خودتان بصورت دستی دانلود و نصب کنید از این آدرس
     دقت شود که مطابق مقالات این سایت نسخه Current را نصب کنید و از LTS صرفنظر کنید تا به روزتر بمانید. ولی اگر قصد انجام پروژه جدی ای دارید وارون این گفته انتخاب کنید.
    برای سهولت نصب و استفاده از آپدیت‌ها میتوانید از ترمینال استفاده کنید. کارها رو خودکار پیش ببرید.
    راهنمای نصب از طریق ترمینال برای لینوکس های  اوبونتو و مینت ، دبیان، ردهت، فدورا، سنت اُ اِس و اُراکل، اُپن زوزه در اینجا
  • #
    ‫۷ سال و ۶ ماه قبل، شنبه ۲۱ اسفند ۱۳۹۵، ساعت ۱۶:۳۳
    چند نکته در مورد VS 2015 و به روز رسانی‌های جدید NET Core.

    آخرین نگارشی را که می‌توانید بدون مشکل با VS 2015 اجرا کنید، 1.0.0-preview2-1-003177 است (واقع در پوشه‌ی C:\Program Files\dotnet\sdk). پس از آن، این سیستم از نگارش JSON ایی فعلی به XML ایی تغییر کرده‌است و ابزارهای آن فقط برای VS 2017 ارائه شده‌اند و VS 2015 از این لحاظ دیگر هیچ پشتیبانی نخواهد داشت (حتی NuGet 4.0 هم برای آن به روز رسانی نشده‌است).

    اگر برای مثال SDK مربوط به .NET Core 1.1.1. را نصب کنید و سپس فایل global.json را به 1.0.1 تغییر دهید:
     C:\Users\Vahid>dotnet --version
    1.0.1
    پروژه با خطای ذیل روبرو شده و در VS 2015 باز نخواهد شد.
     The following error occurred attempting to run the project model server process (1.0.1).
    Unable to start the process. No executable found matching command "dotnet-projectmodel-server"
    بنابراین فایل global.json را که با VS 2017 منسوخ شده و حذف شده در نظر گرفته شده‌است، دیگر به روز رسانی نکنید.

    اگر برای مثال SDK مربوط به .NET Core 1.1.1. را نصب کنید، درون VS 2015 قادر به Restore بسته‌های نیوگت نخواهید شد و با پیام خطای ذیل مواجه می‌شوید:
     \.vs\restore.dg(1,1): error MSB4025: The project file could not be loaded. Data at the root level is invalid. Line 1, position 1.
    در این حالت از این پس سه راه را پیش رو خواهید داشت:
    1- ارتقاء به VS 2017 و فراموش کردن VS 2015
    2- استفاده از VS 2015 و بازیابی بسته‌ها از طریق خط فرمان (چون دیگر ابزارهای VS 2015 با نگارش جدید SDK سازگار نیستند)
     برای این منظور دقت کنید در پنجره‌ی output ویژوال استودیوی 2015، چه فرمانی صادر شده‌است که سبب بروز خطای فوق گردیده‌است:
     "C:\Program Files\dotnet\dotnet.exe" restore "D:\project1\.vs\restore.dg"
    از طریق خط فرمان به پوشه‌‌های پروژه‌ها وارد شده (دکمه‌ی shift را نگه داشته و کلیک راست کنید. سپس گزینه‌ی open command window here را انتخاب نمائید) و دستور فوق را اجرا کنید. این دستور از این پس تنها در خط فرمان بدون مشکل اجرا می‌شود و نه در داخل VS 2015.
    پس از آن پروژه بدون مشکل Build می‌شود (در داخل VS 2015).
    3- و یا ... این SDK جدید 1.0.1 را حذف کنید از سیستم (اگر می‌خواهید با VS 2015 بدون دردسر کار کنید).


    و یا کلا به VSCode مهاجرت کنید و VS کامل را فراموش کنید. VSCode با ابزارهای خط فرمان NET Core. کار می‌کند و در این حالت به سادگی می‌توان همواره آخرین نگارش NET Core. را مورد استفاده قرار داد؛ بدون نگرانی از سازگاری ابزارهای ویژوال استودیو با آن. چون اساسا هیچ نوع وابستگی به این ابزارها ندارد. همچنین حجم بسیار کمتری هم داشته و اگر با دریافت VS 2017 مشکل دارید، مهاجرت به VSCode انتخاب بسیار مناسبی است.


    خلاصه‌ی بحث
    از این پس برای کار کردن بدون دردسر با نگارش‌های جدید NET Core. تنها دو راه را پیش رو دارید: مهاجرت به VS 2017 و یا مهاجرت به VSCode.
    • #
      ‫۷ سال و ۶ ماه قبل، شنبه ۲۱ اسفند ۱۳۹۵، ساعت ۱۷:۲۷
      Rider هم میتونه گزینه خوبی برای استفاده باشه.