Visual Studio 2017 15.8 正式釋出,測試速度提高 82%
Visual Studio 2017 15.8 版本已正式釋出:
安裝
現可選擇在開始安裝之前下載所有安裝檔案。
-
要使用這一新選項,請在安裝程式中選擇“全部下載後再安裝”選項。 如果 Internet 連線速度較慢,建議使用此選項。
-
預設選項仍為“下載時安裝”,它可並行下載和安裝。
效能
此版本包含以下效能改進:
-
由於無需再重新載入解決方案,因此可更快地對大型解決方案執行 C#、VB 和 C++ 專案的分支切換。
-
縮短在大型解決方案中解除安裝和過載一小組 C# 和 VB 專案的時間 - 從數分鐘縮短到數秒鐘。
-
添加了一個選項,用於禁止重新開啟已在上一會話中開啟的文件,因為重新開啟某些型別的檔案或設計器會延遲解決方案載入。
-
通過“工具”>“選項”>“專案”>“解決方案”>“常規”切換此選項。
-
https://club.1688.com/article/64339705.html
https://club.1688.com/article/64339707.html
-
測試效能
顯著提升了在執行包含多個測試專案的大型解決方案期間的效能。 在我們的實驗室中,超過 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<'T> 支援
我們實現了 Span<'T>
和相關功能,因此在 F# 中可通過 Span
、Memory
和 ref
之類的構造來有效使用和生成 API。 功能包括:
-
新的
voidptr
型別。 -
FSharp.Core 中新的
NativePtr.ofVoidPtr
和NativePtr.toVoidPtr
函式。 -
新的型別
inref<'T>
和outref<'T>
,分別是隻讀的 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<MyStruct>
,其中包含一條錯誤:如果你希望修改該結構則該錯誤建議新增可變欄位。
可在此功能集的 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 中瞭解詳細資訊。
https://club.1688.com/article/64339705.html
https://club.1688.com/article/64339707.html
列舉用例以公共形式發出
現在 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。
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 使用率較高的問題。 -
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 提供)。
-
現在為建構函式呼叫站點上的型別提供程式靜態引數生成簽名幫助工具提示(由 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 新增配置的模板。
C++ 生產力
下面是針對 C++ 生產力的增強功能和改進功能:
-
有關巨集的 C++ 快速資訊工具提示現在顯示它們的擴充套件功能,而不僅僅是其定義。 如果複雜巨集在其闡明前處理器使用什麼代替巨集識別符號時引用了其他巨集,這將特別有用。
-
添加了新的快速修復燈泡,將基本巨集轉換為 constexpr 作為使程式碼變得新式的新工具。
-
用於模板的 IntelliSense 提供了有關模板引數的詳細資訊,便於在模板正文中充分利用 IntelliSense。
-
我們正在努力使程式碼分析體驗煥然一新。 你現在可以啟用“工具” > “選項” > “文字編輯器” > “C++” > “試驗” > “程式碼分析”下新的進行中功能。 開啟或儲存檔案時,程式碼分析可在後臺中執行,並且結果顯示在錯誤列表中,在編輯器中顯示為綠色波形曲線。
C++ 除錯改進
我們進行了以下除錯改進:
-
僅我的程式碼功能現在允許逐步執行系統或第三方 C++ 庫中的程式碼,以及摺疊呼叫堆疊視窗中的那些呼叫。 當代碼使用 /JMC 進行編譯且 .natjmc 檔案中指定了非使用者庫路徑時,可以為任何 C++ 庫控制此行為。 如果你在進入時系統庫調入使用者程式碼,則偵錯程式跳過所有系統程式碼並在使用者程式碼回撥的第一行上停止。
-
資料斷點現在可在“監視”、“快速監視”、“自動”和“區域性變數”視窗中進行設定,從而只需幾次短的單擊即可在儲存於記憶體中的值發生更改時切斷。
-
源連結允許在編譯過程將可執行的或庫的原始原始碼相關資訊嵌入 PDB。
-
除錯時,如果程式終止執行,控制檯視窗現將預設保持開啟狀態(類似於在沒有偵錯程式的情況下執行程式)。 可以在“工具” > “選項” > “除錯” > “常規”中將此行為切換回自動關閉控制檯。
-
https://club.1688.com/article/64339705.html
https://club.1688.com/article/64339707.html
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 設計器
-
引入了拆分檢視編輯器,它可用於同時建立、編輯和預覽佈局。
-
改善了 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 的支援且附帶修補程式,可實現呼叫附加功能、分析功能和混合模式(跨語言)呼叫功能。