歡迎光臨
每天分享高質量文章

Visual Studio 2017 15.8 正式釋出,測試速度提高 82%

來自:開源中國

連結:https://www.oschina.net/news/98971/visual-studio-2017-15-8-released


Visual Studio 2017 15.8 版本已正式釋出:


  • 發行說明:https://docs.microsoft.com/zh-cn/visualstudio/releasenotes/vs2017-relnotes#15.8

  • 下載地址:https://visualstudio.microsoft.com/downloads/


安裝


現可選擇在開始安裝之前下載所有安裝檔案。


  • 要使用這一新選項,請在安裝程式中選擇“全部下載後再安裝”選項。 如果 Internet 連線速度較慢,建議使用此選項。

  • 預設選項仍為“下載時安裝”,它可並行下載和安裝。



效能


此版本包含以下效能改進:


  • 由於無需再重新載入解決方案,因此可更快地對大型解決方案執行 C#、VB 和 C++ 專案的分支切換。

  • 縮短在大型解決方案中解除安裝和多載一小組 C# 和 VB 專案的時間 – 從數分鐘縮短到數秒鐘。

  • 添加了一個選項,用於禁止重新開啟已在上一會話中開啟的檔案,因為重新開啟某些型別的檔案或設計器會延遲解決方案載入。

    • 透過“工具”>“選項”>“專案”>“解決方案”>“常規”切換此選項。


測試效能


顯著提升了在執行包含多個測試專案的大型解決方案期間的效能。 在我們的實驗室中,超過 10,000 個 MSTest 的解決方案執行單個測試的速度提高了 82%!


Visual Basic 效能改進


Visual Basic 現顯著提升了使用 CInt(Fix(number)) 樣式將非整數型別轉換為整數時的效能。


效能分析


此版本在以下方面增強了效能分析功能:


  • 添加了“啟動但暫停分析”功能:

    • 效能探查器 (ALT-F2) 中的 CPU 使用情況工具現可啟動但暫停分析。 如果 CPU 使用情況調查在一段時間後才提供有價值的結果,則此功能非常有用。 透過在禁用 CPU 使用情況收集的情況下啟動,效能探查器將不收集任何 CPU 使用情況示例堆疊資料,直到專門啟用此類資料。 這樣一來,收集和分析的資料量大幅降低,從而使效能調查更加高效。

    • 要在禁用 CPU 使用情況示例收集的情況下啟動會話,請在效能探查器啟動頁中單擊 CPU 使用情況工具旁邊的設定(齒輪)圖示,以顯示 CPU 使用情況屬性頁,然後取消選中標記為“啟用 CPU 分析(取樣)”的核取方塊。 最後,按“確定”以儲存這些設定。



*啟動標的應用程式後(按效能探查器啟動頁中的“開始”按鈕),將看到一個顯示 CPU 使用率圖的監視螢幕,你可透過它控制 CPU 分析**。 要啟用 CPU 使用情況示例堆疊資料收集功能,請按檢視中間的“啟用 CPU 分析”連結,或單擊 CPU 使用率圖下方的“記錄 CPU 配置檔案”按鈕。 可單擊“記錄 CPU 配置檔案”按鈕,根據需要多次啟用/禁用示例資料收集。 CPU 使用率圖的顏色出現相應變化,表示在該時間點是否啟用/禁用示例收集。




添加了 .NET 物件分配跟蹤工具:


  • 向性能探查器提供的工具系列增添了 .NET 物件分配跟蹤工具。 如果為效能探查器會話呼叫此工具,將為標的應用程式中發生的每個 .NET 物件分配收集堆疊跟蹤。 此堆疊資料和物件型別及大小資訊一同進行分析,以顯示應用程式的記憶體活動詳情。 你可以快速確定程式碼中的分配樣式並識別異常。 此外,對於垃圾回收 (GC) 事件,使用者可輕鬆確定已收集和保留了哪些物件,從而快速確定佔用應用程式大部分記憶體的物件型別。

  • 這對 API 編寫器來說尤其有用,有助於最大程度減少分配。 許多應用程式都會超出診斷資料收集中涉及的緩衝區限制,但仍可很好地診斷執行 API 關鍵方案的小型測試應用程式。 測試應用程式執行過程中,效能探查器會顯示一個監視檢視,其中包含實時物件(計數)的折線圖和物件增量(百分比變化)的條形圖。

  • 要使用 .NET 物件分配跟蹤工具,請調出效能探查器啟動頁,選擇要分析的標的(預設標的是解決方案中的啟動專案),從可用工具串列中勾選“.NET 物件分配跟蹤”,然後按“開始”按鈕。



效能分析(CPU 使用情況)


此版本對效能探查器的 CPU 使用情況工具做出了以下改進(可透過 ALT-F2 獲得):


  • 預設情況下,“呼叫樹”檢視現按邏輯呼叫堆疊顯示非同步執行。 可透過取消選中 CPU 使用情況主檢視的“篩選器”下拉串列中的“拼結非同步程式碼”選項來關閉此行為。

  • 添加了“模組/函式”檢視,該檢視按模組 (dll) 和模組內的函式顯示效能資訊。 在 CPU 使用情況主檢視中選擇函式時,可從背景關係選單中顯示“模組/函式”檢視,也可以從“呼叫樹”或“呼叫方/被呼叫方”檢視的“檢視”下拉串列中顯示“模組/函式”檢視。

  • 在 CPU 使用情況工具的主檢視中,為 CPU 使用情況圖添加了“實體指示”。 雙擊任意 CPU 使用情況檢視中列出的函式,即可在函式執行時(例如在堆疊上)檢視實體。

生產力


此版本在以下方面提升了生產力:


  • 可使用格式檔案(Ctrl + K、D 或 Ctrl + E、D)執行其他程式碼清理進行 C# 開發。 按以下方式配置清理:轉到“工具” > “選項” > “文字編輯器” > “C#” > “程式碼樣式” > “格式” > “常規”。

  • 增添了更多使用 Ctrl + . 或 Alt + Enter 的重構和快速操作:

    • dotnet_style_prefer_conditional_expression_over_assignment

    • dotnet_style_prefer_conditional_expression_over_return

    • dotnet_style_parentheses_in_arithmetic_binary_operators

    • dotnet_style_parentheses_in_relational_binary_operators

    • dotnet_style_parentheses_in_other_binary_operators

    • dotnet_style_parentheses_in_other_operators

    • “倒轉 If”可讓 if-else 陳述句中的邏輯反轉。 將游標置於 if 關鍵字,以觸發此重構。

    • 透過從方法呼叫站點新增引數,可向方法呼叫站點新增引數並觸發“快速操作和重構”,從而向方法新增引數。

    • 刪除不必要的括號時會一併刪除對編譯不重要的二元運運算元兩側的括號。 可透過“工具” > “選項” > “文字編輯器” > “C#” > “程式碼樣式” > “常規”或以下 .editorconfig 配置此樣式規則:

    • 此外,還可透過“工具” > “選項” > 或以下 .editorconfig 將“在分配中使用三元條件並傳回陳述句”配置為樣式規則:

  • 在“轉到所有”視窗中添加了新的命令和改進功能:

    • 透過“轉到封閉塊”(Ctrl + Alt + 向上鍵),可快速導航到封閉程式碼塊的開頭。

    • 透過“轉到下一個/上一個問題”(Alt + PgUp/PgDn),可跳到下一個/上一個問題(錯誤、波形曲線和燈泡)。

    • “轉到成員”(Ctrl + T、M)現預設適用於檔案。 可透過將作用域切換到當前檔案 (Ctrl + Alt + C),使預設值更改回解決方案。

  • 藉助對多個插入點的支援,現可在檔案中的多個任意位置建立插入點並選擇內容。 這樣,你可以同時在多個位置新增、編輯或刪除文字。

    • 透過“Ctrl + Alt + 單擊滑鼠左鍵”插入點。

    • 使用 Shift + Alt + Ins 在與當前所選內容匹配的下一個位置新增所選內容和插入點。

    • 有關完整操作串列,請參閱“‘編輯’>‘多個插入點’”。

  • 使用 Alt + ` 訪問背景關係導航選單。

  • 讓鍵系結與 Visual Studio Code 和 ReSharper (Visual Studio) 這兩個新的鍵盤配置檔案保持一致:。 可訪問“工具”>“選項”>“常規”>“鍵盤”,再使用頂部的下拉選單查詢這些方案。

除錯


此版本在以下方面增強了除錯功能:


  • 如果安裝有多個 Visual Studio 2017 實體,在除錯時現在可選擇要將擴充套件部署到的實體。 這樣,在預覽通道中除錯時可以在諸如 Visual Studio 版本等通道中開發。



 *現在可以直接從釋出摘要頁附加 Snapshot Debugger__。




適用於通用 Windows 平臺開發的工具


在 Windows 10 Fall Creators Update(內部版本 16299)或更高版本的標的平臺版本中,我們對面向通用 Windows 平臺的專案的 XAML 設計器進行了許多重要改進。


  • 現可在屬性檢查器中編輯集合。

  • 設計器現在允許對模板和樣式進行編輯,包括這些物體的定義在其他檔案中定義時。

  • 型別 IconElement(如 AppBarButton 中的圖示)的屬性現在在屬性檢查器中有一個自定義編輯器,使設定這些屬性變得更容易。

  • 設計器、編輯器和“編輯並繼續”現都應適用於 x:DefaultBindMode。

  • Blend 中的視覺狀態管理器體驗現在支援 AdaptiveTrigger。


用於 Visual Studio 的 F# 4.5 和 F# 工具


此版本中我們引入了 F# 語言版本 4.5。 這也與新的 FSharp.Core 4.5.x 系列(F# 核心庫)保持一致。 可以在 F# RFC 儲存庫中閱讀每個更改的說明。 此版本中還有對用於 Visual Studio 的 F# 工具的諸多改進。


F# 4.5


下麵是 F# 語言版本 4.5 中的一些亮點:


Span 支援


我們實現了 Span 和相關功能,因此在 F# 中可透過 Span、Memory 和 ref 之類的構造來有效使用和生成 API。 功能包括:


  • 新的 voidptr 型別。

  • FSharp.Core 中新的 NativePtr.ofVoidPtr 和 NativePtr.toVoidPtr 函式。

  • 新的型別 inref 和 outref,分別是隻讀的 byref 和只寫的 byref。 此值對應於 C# 中的 in ref 和 out ref。

  • 能夠生成 ByRefLike 結構(如 Span 和 ReadOnlySpan)。

  • 能夠生成 IsReadOnly 結構。

  • 隱式取消取用方法中的 byref 傳回值和 inref 傳回值。

  • 能夠在 byref/inref/outref 上生成擴充套件成員。


此功能集修複了 F# 4.1中 byref 傳回值初始設計的一個 bug – 即傳回 byref 的函式、方法和屬性未隱式取消取用傳回值。 我們進行此更改,使該功能與 C# 處理 ref 傳回值的方式保持一致。 當型別批註指示現在使用 ref 傳回值的隱式取消取用時,將用到錯誤訊息。


此外,此功能集還修複了 F# 編譯器中的一個 bug – 即可以進行“不良結構替換”,也就是說,呼叫 F# 結構上的方法時可以使用其他結構替換正呼叫的實際結構。 現將結構上的 this 引數視為 inref,其中包含一條錯誤:如果你希望修改該結構則該錯誤建議新增可變欄位。


可在此功能集的 RFC 中詳細瞭解 span 和 ref 之類的構造。


計算運算式中的 Match!


F# 4.5 引入了 match!,一個用在計算運算式中的新關鍵字(由 John Wostenberg 獨立提供)。 此語法糖等同於在結果中 let! 後跟 match。 可在 match! 的 RFC 中瞭解詳細資訊。


放寬了使用 yield 時序列、串列和陣列運算式中的向上轉換要求


F# 4.5 現在放寬了某些限制:使用 yield 時需要向上轉換來將子型別轉換為超型別。 自 F# 3.1 起如果不使用 yield 這些運算式中已無此限制,因此此項改進使得與現有行為更加一致。 可在此功能的 RFC 中瞭解詳細資訊。


串列和陣列括號上允許縮排


F# 4.5 現在放鬆了串列和陣列括號的縮排規則,此前如果串列和陣列括號位於自己的行上需將其向前縮排一個作用域。 這項要求一直以來都非常令人困惑,尤其是對 F# 初學者。 此外,F# 序串列達式無此要求。 現在,陣列表達和串列運算式與序串列達式一樣,不再受此要求限制。 可在此功能的 RFC 中瞭解詳細資訊。


列舉用例以公共形式發出


現在 F# 4.5 在所有情況下以公共形式發出列舉用例,以與 C# 發出列舉用例的方式保持一致。 這也更便於分析工具分析來自 F# 程式碼的日誌,其中發出的是值而不是標簽名稱。 可在此功能的 RFC 中瞭解詳細資訊。


F# 編譯器改進


F# 4.5 中不僅包括之前提到的語言功能改進,也包括對 F# 編譯器的改進。 這些方法包括:


  • 我們刪除了 F# 編譯器中高達 2.2% 的分配(各種情況下),改進了編譯器效能。

  • 修複了對基於結構的可列舉物件使用 yield! 時 AccessViolatioNException 中產生的 bug。

  • 現可再次從 FSharpFunc 中繼承。

  • 對於 F# for .NET Core 的除錯版本預設禁用尾呼叫。 它們在釋出版本中啟用,因此與桌面版 F# 編譯器匹配。

  • 修複了 F# 取用規範化,允許你控制寫入輸出檔案的可傳遞程式集取用。 你便可執行 .NET Core 上程式集重定向的等效操作。

  • 修複了以下 bug:忽略了嘗試在行內函式上使用動態呼叫時用到的錯誤訊息。 錯誤訊息現將傳送。

  • F# 現在尊重你可在專案檔案中設定的 WarningsNotAsErrors 標誌。

  • Isaac Abraham 更新了樣式匹配分支不傳回相同型別時出現的錯誤訊息,使其更加友好。

  • Steffen Forkmann 修複了編譯缺少多載方法實現的介面實現時出現內部錯誤這一 bug。

  • Gauthier Segay 刪除了編譯器文法階段中一些沒必要的陣列複製。

  • F# 列舉上不完整的樣式匹配現在生成詳細的警告,給出未涵蓋的用例示例(由 John Wostenberg 提供)。

  • `#nowarn “2003” 現在受到尊重(由 Matthias Diitrich 提供)。

  • Steffen Forkmann 修複了在 F# 多載解析中使用 C# 擴充套件方法可能失敗這一 bug。

  • Steffen Forkmann 修複了內部 QueueList 資料結構 bug。

  • Steffen Forkmann、Eugene Auduchinok 和 ncave 還提供了各種小的最佳化併進行了程式碼清除工作。


F# 核心庫 4.5.x


現在推出了對 F# 核心庫的下列補充內容:


  • 完成了大量工作來改進 async { } 計算運算式的堆疊跟蹤。 現在應能夠在堆疊跟蹤中檢視使用者程式碼和使用者行號。 可在此功能的 RFC 中瞭解詳細資訊。

  • 提供型別 System.Func 和 System.Action 多載的 FuncConvert.FromFunc 和 FuncConvert.FromAction API,幫助 C# 中的互操作。 可在此功能的 RFC 中瞭解詳細資訊。

  • 提供了新型別 ValueOption,它是旨在為活動樣式帶來更好效能的系列未來功能中的首個功能。 可在此功能的 RFC 中瞭解詳細資訊。

  • TryGetValue 現在是 F# Map 型別上的新成員。 可在此功能的 RFC 中瞭解詳細資訊。

  • 我們解決了首次呼叫 MailboxProcessor.TryReceive 時 CPU 使用率較高的問題。

  • bool 比較現在使用快速泛型比較(由 Vasily Kirichenko 提供)。

  • Array.allPairs 的摘要文字已更新為正確(由 Patrick McDonald 提供)


F# 工具改進


此版本中提供 F# 工具的重大改進,例如效能改進和一些新的編輯器功能。 與往常一樣,F# 開源社群提供了大量內容,作出了巨大貢獻。 以下是一些亮點:


  • 我們改進了所有形式的 .NET SDK 樣式專案的 IntelliSense 效能,包括那些使用多標的的專案。

  • Vasily KirichenkoSteffen Forkmann 和 Gauthier Segay 進行了社群驅動的工作,分析和改進了非常大的檔案的 IntelliSense 效能。 非常大的檔案(10k 以上的程式碼行)中的 IntelliSense 現在約是原來的兩倍快。

  • 過時 FSharp.Core(儘管安裝了包)的警告不再出現在 .NET SDK 樣式專案中。

  • IntelliSense 中 . 之後為成員顯示 XML 檔案的說明工具提示在 10 秒後不再超時。

  • 修複了無法在物件建構式引數中設定斷點這一 bug。

  • 修複了重新命名符號屬於泛型引數時將進行複製這一 bug。

  • .NET Framework 的模板(經典 F# 模板)現在使用來自 NuGet 包的 FSharp.Core,以便與 .NET SDK F# 模板保持一致。

  • 現在為 ()、[]、{}、[||] 和 [<>] 大括號對提供自動的事務型大括號完成。 我們與 Gibran Rosa 一起完成這項工作。

  • 現在,可以透過按住 Ctrl 並單擊 F# 符號來轉到定義。 此筆勢的設定在“工具”>“選項”視窗中也受到尊重。

  • 修改了 IntelliSense 效能 UI,允許為各種 IDE 功能配置過時的 typecheck 資訊。 每個選項的說明現在顯示在設定的工具提示中。

  • 大括號匹配突出顯示現在正確地突出顯示大括號(與 Vasily Kirichenko 協作完成)。

  • 現在當型別以遞迴方式定義時“轉到定義”正確導航(由 Vasily Kirichenko 提供)。

  • Vasily Kirichenko 修複了檔案頂部為空時未將自動匯入名稱空間開啟這一 bug。

  • Vasily Kirichenko 修複了將包含點的 printf 說明符錯誤地著色這一 bug。

  • Vasily Kirichenko 修複了將遞迴模組內所有開啟項視為未使用這一 bug。

  • Vasily Kirichenko 大大提升了 Unused Opens 分析器的效能。

  • 屬性自動完成功能現在僅建議確實是屬性的選項(由 Vasily Kirichenko 提供)。

  • 現在為建構式呼叫站點上的型別提供程式靜態引數生成簽名幫助工具提示(由 Vasily Kirichenko 提供)。

  • Vasily Kirichenko 修複了將用作度量單位的值型別作為取用型別進行著色這一 bug。

  • Vasily Kirichenko 修複了滾動時一些檔案的語意著色可能消失這一 bug。

  • 現在提供了試驗性的 CodeLens 實現(由 Victor Peter Rouven Müller 提供)。 可在“選項”>“文字編輯器”>“F#”>“程式碼透鏡”中將其開啟。

  • Sebastian Urban 修複了 F# 編譯器服務會錯誤地省略 XML 檔案中模組名稱的拼寫這一 bug。

  • 使用 Dictionary 與 ContainsKey 和後續 Item 呼叫的程式碼已更改為使用 TryGetValue(由 Eugene Auduchinok 提供)。

  • Jakob Majoka 也參與了使用工具提示的其他 API 這一過程的創作。


基礎結構、打包和開放原始碼改進


我們對基礎結構、打包和開放源供稿體驗進行了以下改進:


  • 隨 Visual Studio 分發的 F# 編譯器不再作為單一實體安裝在 F# 編譯器 SDK 位置。 它現在完全與 Visual Studio 並行,這意味著,並行安裝 Visual Studio 最後將導致具有真正的並行 F# 工具和語言體驗。

  • 現對 FSharp.Core NuGet 包進行簽名。

  • ETW 日誌記錄已新增到 F# 工具和編譯器。

  • FSharp.Core 中非常大的 control.fs/contro.fsi 檔案現拆分為 async.fs/async.fsi、event.fs/event.fsi、eventmodule.fs/eventmodule.fsi、mailbox.fs/mailbox.fsi 和 observable.fs/observable.fsi。

  • 我們添加了 .NET SDK 樣式版本的專案效能壓力測試專案。

  • 從基本程式碼中刪除了 Newtonsoft.Json,現在,你為 OSS 參與者下載的包將少一個。

  • 我們現在使用最新版本的 System.Collections.Immutable 和 System.Reflection.Metadata。

C++ 符合性和工具集改進


此版本包含以下 C++ 符合性和工具集改進:


  • 新的基於令牌的試驗性前處理器,它符合 C++ 11 項標準(包括 C99 前處理器功能),並透過 /experimental:preprocessor 開關啟用。 使用宏 _MSVC_TRADITIONAL 對其進行控制,使用傳統前處理器時定義為 1,使用符合標準的新試驗性前處理器時定義為 0。

  • Visual Studio 開發人員命令提示支援啟用 Visual C++ Spectre 變體 1 緩解執行時 (-vcvars_spectre_libs = spectre)。 有關 Spectre 緩解的詳細資訊,請參閱 Visual C++ 團隊部落格。

  • 向 SSA 最佳化器新增的兩項新內容重點關註新式 C++ 程式碼生成:冗餘儲存清除和冗餘分支摺疊。

  • 最佳化的記憶體映射了聯結器中的 I/O 效能以減少連結時間。

C++ 跨平臺開發


此版本中,我們改進了 C++ 跨平臺開發,並向其添加了以下內容:


  • 添加了“新增” > “新項”模板,用於生成遵循“工具” > “選項”中為 ClangFormat 指定的編碼約定的 .clang 格式檔案。 如果選擇 Visual Studio 約定,則生成的檔案嘗試匹配“工具”>“選項”中使用者當前的 Visual Studio 格式設定配置。

  • 將配送的 format.exe 版本更新到 6.0.0。

  • 用於簡化向 CppProperties.json 新增配置的模板。

  • 添加了模板以簡化向 CMakeSettings.json 新增配置。



C++ 生產力


下麵是針對 C++ 生產力的增強功能和改進功能:


  • 有關宏的 C++ 快速資訊工具提示現在顯示它們的擴充套件功能,而不僅僅是其定義。 如果複雜宏在其闡明前處理器使用什麼代替宏識別符號時取用了其他宏,這將特別有用。

  • 添加了新的快速修複燈泡,將基本宏轉換為 constexpr 作為使程式碼變得新式的新工具。

  • 用於模板的 IntelliSense 提供了有關模板引數的詳細資訊,便於在模板正文中充分利用 IntelliSense。


  • 我們正在努力使程式碼分析體驗煥然一新。 你現在可以啟用“工具” > “選項” > “文字編輯器” > “C++” > “試驗” > “程式碼分析”下新的進行中功能。 開啟或儲存檔案時,程式碼分析可在後臺中執行,並且結果顯示在錯誤串列中,在編輯器中顯示為綠色波形曲線。



C++ 除錯改進


我們進行了以下除錯改進:


  • 僅我的程式碼功能現在允許逐步執行系統或第三方 C++ 庫中的程式碼,以及摺疊呼叫堆疊視窗中的那些呼叫。 當程式碼使用 /JMC 進行編譯且 .natjmc 檔案中指定了非使用者庫路徑時,可以為任何 C++ 庫控制此行為。 如果你在進入時系統庫調入使用者程式碼,則除錯器跳過所有系統程式碼併在使用者程式碼回呼的第一行上停止。


  • 資料斷點現在可在“監視”、“快速監視”、“自動”和“區域性變數”視窗中進行設定,從而只需幾次短的單擊即可在儲存於記憶體中的值發生更改時切斷。

  • 源連結允許在編譯過程將可執行的或庫的原始原始碼相關資訊嵌入 PDB。

  • 除錯時,如果程式終止執行,控制檯視窗現將預設保持開啟狀態(類似於在沒有除錯器的情況下執行程式)。 可以在“工具” > “選項” > “除錯” > “常規”中將此行為切換回自動關閉控制檯。

Visual Studio Web 工具


庫管理器是 Visual Studio 2017 中包含的新功能。 有助於在 Web 專案中管理客戶端端庫。


容器工具


為 ASP.NET Core Web 專案添加了新的單個專案 Docker 容器體驗。 這補充了基於 Docker Compose 的現有容器工具,並提供了更簡單便捷的方法直接從 Visual Studio 建立、除錯和生成 Docker 容器。


建立專案時,可以新增 Docker 支援。




或者,可以透過解決方案資源管理器中專案的背景關係選單對現有專案啟用 Docker 支援。 一旦執行此操作,Visual Studio 將在專案中建立單個 Dockerfile。 可以選擇 Windows 還是 Linux。




Visual Studio 還新增用於 Docker 的除錯器啟動配置檔案,以便專案在容器內執行時可對其進行除錯。




如果有帶多個 Docker 專案的解決方案,預設情況下,選擇啟動解決方案時只有一個容器執行。 如果想要同時執行多個容器,可在解決方案資源管理器中右鍵單擊該專案,並選擇“設定啟動專案”、“多個啟動專案”,然後對要執行的所有專案將“操作”下拉串列設定為“啟動”或“啟動(不除錯)”。


容器化專案按所需方式執行後,如果準備好將專案推送到 Azure 容器登錄檔或 DockerHub,則可以右鍵單擊該專案並選擇“生成 Docker 映像”以本地生成映像。

此外可以透過新的“容器業務流程協調程式支援”選項向 ASP.NET Core Web 專案新增基於 Docker Compose 的現有功能。 在解決方案資源管理器中右鍵單擊 ASP.NET Core Web 專案,選擇“新增”>“容器業務流程協調程式支援”,然後從下拉串列選單中選擇“Docker Compose”。



釋出改進


此版本包含以下釋出改進:


  • 將 Docker 容器釋出到容器登錄檔時,現在可以自定義映像的標記。 可以手動新增標記(預設為“最新”),或使用自動生成的標記來確保每個標記是唯一的。

  • 建立新的 Azure 應用服務時,還可以配置 Application Insights 以自動收集遙測資料。 如果選擇的區域也有 Application Insights,則它預設啟用。 如果選擇的區域尚不包含 Application Insights,可以從下拉串列中為 Application Insights 資源手動指定其他區域。

  • 釋出 Azure Functions 專案時,可以選擇使用新的 Run-From-Zip 功能進行釋出。


Visual Studio Tools for Xamarin


此版本包含以下 Xamarin 更新:


  • 添加了對 Xcode 9.4 的支援。

  • 建立新的 Xamarin.Forms 專案時,預設程式碼共享選項現在為 .NET Standard。 共享專案選項仍然可用。

  • 添加了 Android 增量生成的改進。 Xamarin.Android 利用在中間輸出目錄中生成的檔案實現了比完整生成更快的增量生成。 以前,如果更改了專案的標的框架,它將使檔案無效併在下次執行時實現完整生成。 在此版本中,現保留每個框架檔案夾中的檔案,這樣你可以在不同的標的框架之間進行切換,並且仍可使用增量生成。 透過清理專案,你可以回收保留的檔案所佔用的磁碟空間。

  • 我們在 Visual Studio 2017 中添加了對 Xamarin.Mac 系結專案的最低支援。 這樣,Visual Studio 就可載入 Xamarin.Mac 系結專案並將其識別為“已受支援”。 另外,還可以生成 Xamarin.Mac 系結專案,不過是在本地執行生成過程而不是使用本機 Mac 工具鏈,因此在應用中執行或除錯時,不能使用生成的 IL 程式集。


Hyper-V Android Emulator 支援


此版本現在 Windows 10 的 2018 年 4 月更新上執行時支援使用與 Hyper-V 相容的 Google Android Emulator。 這樣,你可以將 Google Android Emulator 與其他基於 Hyper-V 的技術(例如 Hyper-V 虛擬機器、Docker 工具和 HoloLens 模擬器等)並行使用。 現向使用 Hyper-V 的移動應用開發人員提供一款快速執行的 Android 模擬器,該模擬器始終支援最新的 Android API、可與現有的 Google Play Services 配合使用,同時支援 Android Emulator 的各項功能(例如照相機、地理位置和快速啟動)。




Xamarin.Android 設計器


顯著改善了 Xamarin.Android 的設計器體驗。 亮點包括:


  • 引入了拆分檢視編輯器,它可用於同時建立、編輯和預覽佈局。


  • 改善了 Intellisense 體驗,同時提升了自定義控制元件的可靠性。

  • 支援對系統提供的值使用示例資料。


Xamarin.Forms 預覽器


當使用 Xamarin.Forms 3.1.0.583944 版或更高版本時,Xamarin.Forms 預覽器現提供工具箱支援。 Xamarin.Forms 控制元件將在工具箱中顯示,這讓工具箱新手們能更輕鬆地找到它們。 還可將控制元件拖放到 XAML 程式碼編輯器中,從而在頁面上新增控制元件。


Python


此版本為 Python 開發人員添加了以下改進功能:


  • Python IntelliSense 現使用 typeshed 定義為無法透過靜態分析推斷出自動完成的庫提供更豐富的結果。

  • 試驗性除錯器在 15.7 預覽版中首次推出,它現在是 Python 使用的預設除錯引擎,為 Python 程式碼提供更快、更可靠的除錯。

  • 增添了對 Python 3.7 的支援且附帶修補程式,可實現呼叫附加功能、分析功能和混合樣式(跨語言)呼叫功能。

  • 要詳細瞭解上述功能,請務必檢視 Visual Studio 15.8 中的 Python 部落格文章。

遷移本地 Azure 函式設定


釋出摘要頁中提供的“託管應用程式設定”對話方塊現可顯示 local.settings.json 檔案中的值,且支援你將這些值遷移到 Azure 中託管的遠端 Azure 函式應用。


連線的服務


對於 Azure 函式專案的解決方案,現可直接透過 Visual Studio 2017 配置 Azure Functions 的持續交付。

測試資源管理器方面的改進


選中層次結構檢視中的某個分組時,測試資源管理器現顯示更詳細的測試狀態摘要窗格(測試資源管理器的下窗格)。 該窗格現顯示該分組中失敗、透過或未執行的測試數量。


新的擴充套件性功能


語言伺服器協議


Visual Studio 現提供針對語言伺服器協議的本機支援。 擴充套件作者可建立擴充套件,用於與現有語言伺服器進行通訊,從而向 Visual Studio 新增其他語言支援。 擴充套件使用者可安裝這些擴充套件,從而開始在 Visual Studio 中使用自己熟悉的語言(如 Rust)。


AsyncPackage 模板


擴充套件作者現可透過項模板建立 AsyncPackage,從而最佳化其擴充套件的效能。 要詳細瞭解如何使用 AsyncPackage,請參閱本檔案。


擴充套件包


藉助擴充套件包,可輕鬆共享自己偏好的一組擴充套件或設定新的帶有所有擴充套件的 Visual Studio 安裝。 利用擴充套件包,可建立擴充套件串列、將其打包在擴充套件中,並使用串列快速批次安裝這些擴充套件。

命令列擴充套件釋出


使用命令列將擴充套件釋出到 Visual Studio Marketplace。


.NET Core SDK 2.1.400


Visual Studio 15.8 附帶有 .NET Core SDK 2.1.400。 新的 SDK 功能包括:


  • 添加了 NUnit 模板

  • 添加了對已簽名的全域性工具的支援

  • 改進了幫助文字,使其更加清晰明瞭


解決了 .NET Core CLI 上的 32 個問題。 解決了 .NET Core SDK 上的 20 個問題。


原始碼管理


對於 .NET Core 專案,透過檔案資源管理器直接新增到專案的檔案現可在解決方案資源管理器中顯示正確的 Git 和 TFS 跟蹤圖示,而無需重新載入解決方案。


.NET 測試配接器擴充套件:中斷性變更和棄用


.Net 測試配接器具有以下中斷性變更和棄用:


  • 中斷性變更:所有測試專案必須在其 csproj 中包含各自的 .NET 測試配接器 NuGet 取用。 如果未包含,在生成之後啟動測試配接器擴充套件的發現或使用者嘗試執行所選測試時,專案中將顯示以下測試輸出:

    • 測試專案 {} 不取用任何 .NET NuGet 配接器。 測試發現或執行可能不適用於此專案。 建議在解決方案的每個測試專案中取用 NuGet 測試配接器。

  • .NET 測試框架已在 NuGet 包中釋出其配接器,且已遷出 Visual Studio 擴充套件。 棄用了透過擴充套件提供的 .NET 測試配接器支援(不過仍受支援)。 這意味著可透過“工具”>“選項”>“測試”使用兩個新選項。

    • 透過第一個選項,Visual Studio 只能使用它在測試程式集檔案夾(由測試配接器 NuGet 取用填充)中發現的或 runsettings 檔案中指定的測試配接器。

    • 透過第二個選項,Visual Studio 可“回退”至之前的行為,併為不具備測試配接器 NuGet 取用的專案搜尋測試配接器擴充套件。 預設勾選這兩個選項,因此在該版本中,預設行為保持不變。

  • 請註意,此項更改不影響非 .NET 測試配接器。


ASP.NET .NET Framework 密碼支援


對於面向 .NET Framework 4.7.1 或更高版本的 ASP.NET .NET Framework 專案,現可透過右鍵單擊專案並選擇“託管使用者密碼”,開啟原始碼中不需要的密碼並將其儲存到 usersecrets.xml 中。


.NET Framework 4.7.2


Visual Studio 2017 15.8 版現向所有受支援的平臺提供 .NET Framework 4.7.2(包括 4.7.2 執行時)。 .NET Framework 4.7.2 提供多項新功能和改進功能,還有大量可靠性、穩定性、安全性和效能方面的修補程式。


有關 .NET Framework 4.7.2 的更多詳細資訊,可參閱以下文章:


  • .NET Framework 4.7.2 RTM 部落格

  • .NET framework 4.7.2 發行說明

  • .NET Framework 4.7.2 中的已知問題

  • .NET Framework 4.7.2 中的應用程式相容性

  • API 更改


延遲載入以非同步方式自動載入的軟體包


Visual Studio 現延遲載入配置為自動載入的非同步包,直到 Visual Studio IDE 完全啟動且解決方案載入完畢為止。 此項更改不影響以同步方式自動載入的包。 使用者可檢視狀態列左下角的“任務狀態中心”來監視進度。 建立 asyncpackage 的擴充套件作者應測試其擴充套件。 有關詳細資訊,請參閱 Improving the responsiveness of critical scenarios by updating auto load behavior for extensions(透過更新擴充套件的自動載入行為來提高關鍵方案的響應能力)。


●編號130,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

Web開發

更多推薦18個技術類公眾微信

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂