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

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)

分享創造快樂