14.Visual Studio 2017 15.9 منتشر شد
These are the issues addressed in 15.9.14:
- Fixed a bug causing Visual Studio 2017 crashes when switching branches.
- Fixed a bug causing internal compiler error (fbtctree.cpp', line 5540) during code analysis.
- Fixed a performance regression in memcpy/memset for Ryzen processors.
- Updated Service Fabric tooling to support the 6.5 Service Fabric release.
- Enabled screen reader to announce TeamExplorer's notifications properly on .NET 4.8.
- VS2017 15.8 Internal compiler error ('msc1.cpp', line 1518): Conflict between preprocessor and #import.
- ICE in PREfast 19.16.27023.1 (15.9 RTW).
Security Advisory Notices
15.Visual Studio 2017 15.9 منتشر شد
These are the issues addressed in 15.9.15:
- Updated signing of VC Redist packages to enable continued deployment on Windows XP. This fix may have an increased chance of requiring a reboot of the machine in order to install an updated VC++ Redistributable package.
- Fixed in issue where GoToDefinition does not work for JavaScript in script blocks of cshtml files.
- Calling pmr monotonic_buffer_resource release will corrupt memory.
- Fix for HRESULT E_FAIL build error in some C++ projects when upgrading to 15.9.13
Security Advisory Notices
دریافت نصاب 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
{ "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.
"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" ] } } }
Roslyn 1.0.2 منتشر شد
ASP.NET Core and Blazor futures Q&A | DIS201H
#MSBuild
Join us for a discussion on the future of web development with the ASP.NET Core team. Get the team's perspective first-hand on the roadmap for ASP.NET Core and Blazor in .NET 8 and get all of your burning questions answered. We discuss Blazor, Native AOT, cloud native development, and anything else that you want to ask us about.
Retirement of MCSA, MCSD, MCSE certifications and related exams extended
We know many of you are working toward completing your Microsoft Certified Solutions Associate (MCSA), Microsoft Certified Solutions Developer (MCSD), or Microsoft Certified Solutions Expert (MCSE) certification(s). We realize that the current environment could potentially hamper your ability to finish your certification before the original retirement date of June 30, 2020. To address this issue, we are extending the retirement date for these specific certifications to January 31, 2021 to give you more time to complete the exams and earn your certification.