https://www.visualstudio.com/zh-cn/news/releasenotes/vs2017-relnotesjavascript
咱們很高興推出新款全新設計的安裝程序:html
首次安裝 Visual Studio 2017 時,會得到新體驗:前端
最小的安裝僅爲數百兆字節,但仍然支持針對超過&20; 種語言的基本代碼編輯(包括源代碼管理)。 大部分用戶會想安裝更多功能。 可添加一個或多個表明常見框架、語言和平臺的「工做負載」,涵蓋從 .NET 桌面開發到使用 Unity 的遊戲開發等一切事務。java
若要更新 Visual Studio,請運行 Visual Studio 安裝程序並單擊「更新」按鈕。node
可以使用標題欄右上角處新安裝程序客戶端的「報告問題」和「提供建議」命令來報告問題或給出好評。 咱們想知道你在安裝、卸載或修改安裝時是否遇到錯誤,是否遇到異常安裝時間(例如掛起)或意外錯誤消息。react
系統管理員和其餘用戶如今能夠建立 Visual Studio 的脫機佈局,其中包含了安裝產品所需的全部內容,無需訪問 Internet。 此佈局能夠是完整的產品、工做負荷和/或組件的一個子集,以及一個或多個產品區域設置。 請注意,建立脫機佈局須要 Internet 訪問。 有關詳細信息,請參閱 Create an offline installation of Visual Studio 2017(建立 Visual Studio 2017 的脫機安裝)。jquery
Visual Studio Enterprise 和 Community(以及其餘產品)如今能夠並行安裝在同一臺計算機上。 若要使標識這些安裝更加容易,能夠指定短名稱或「別名」。 例如,若是要安裝 Visual Studio Enterprise,而後安裝 Visual Studio Community,這兩個程序在開始菜單上的顯示是同樣的。 能夠爲第二個程序提供別名,如「community」,開始菜單項中將顯示諸如「Visual Studio 2017 (community)」和「Visual Studio 2017 (community) 開發人員命令提示」這樣的名稱。git
推出了一種新的標識服務,可用於跨 Microsoft 開發人員工具共享用戶賬戶。 在 Visual Studio 中,此共享包括團隊資源管理器、Azure Tools 和 Windows 應用商店發佈等功能。 如今,這些功能的登陸體驗共有且一致。github
除了改進 Visual Studio,咱們還在服務端部署了部分改進功能,讓用戶可安全保持登陸狀態,消除了每 12 小時便強制登陸的要求。 這解決了最常報告的登陸問題。 深刻了解如何減小 Visual Studio 提示。web
從新設計的起始頁擁有新的「打開」和「建立」功能:
下方顯示了新的起始頁。
Visual Studio 2017 中的代碼導航功能有了顯著改進:
Visual Studio 編輯器現支持 EditorConfig,它容許開發人員定義編碼樣式約定並使其在不一樣編輯器和 IDE 之間保持一致。 請參閱文檔獲取更多詳細信息,請參閱 .NET 文檔獲取有關如何使用 .editorconfig 文件管理 .NET 代碼樣式的信息。 請參閱已知問題,瞭解此版本中有關 EditorConfig 支持的限制。
「打開文件夾」是使用不含項目和解決方案的基本代碼的簡便方法。 經過「文件」>「打開」>「文件夾」打開文件夾視圖,而後選擇要導航的文件夾。
可以使用解決方案資源管理器打開和編輯文件。 許多經常使用語言具備語法突出顯示和符號導航(GoTo)支持。 此外,某些語言可直接由文件夾得到高級 IntelliSense 和調試支持:
可以使用 F5 和解決方案資源管理器中的文件上下文菜單實現生成或調試操做。 要得到最佳體驗,請確保安裝所使用語言的工做負荷。
文件夾視圖也支持如下操做:
大幅提高了打開文件夾和在文件夾視圖與解決方案視圖之間切換時的效果。
輕量級解決方案加載可以讓大型解決方案的加載速度更快。 它可大幅節省大型解決方案的加載時間和內存使用量。 此功能並不是默認啓用,可按解決方案逐一啓用,也可在 IDE 中全局啓用。 若要全局啓用,可導航到「工具」>「選項」,選擇「項目和解決方案」下的「常規」,或經過使用「快速啓動」搜索「輕量級解決方案加載」。 可在解決方案屬性窗格中,爲單個解決方案開啓和關閉該功能。
輕量級解決方案加載最適合包含 C# 項目或包含混用 C# 和 C++ 的項目的大型解決方案。 若是檢測到正在使用大型解決方案,系統可能會提示啓用此功能。 有關此功能的更多詳細信息,可訪問 Visual Studio 博客。
大幅改進了完整解決方案生成的性能,如今與常規的解決方案加載擁有同等性能。
基於在 Visual Studio 2015 更新中添加的支持,Visual Studio 2017 現支持對更多語言進行語法着色和自動完成。 此外,這些語言中的其中一些語言也支持經過「導航到」(Ctrl+) 和/或代碼段導航。
如下所示的語言文件支持新「Visual Studio 核心編輯器」中的這些功能(即便並未安裝顯式支持有問題的語言的工做負載)。 若是安裝了提供語言支持的工做負載(例如 .NET 桌面應用程序開發工做負載、使用 C++ 的 Windows 桌面應用開發工做負載等),會提供更普遍的語言支持,包括 IntelliSense 和其餘高級語言功能(例如燈泡)。
按支持級別列出的語言文件類型:
針對新建立的項目,咱們引入了全新的入門體驗。 咱們已將當前的入門頁替換爲新應用配置設計器中的「概述」選項卡,此頁面側重於可以讓你快速入門並開始運行的操做!
在之前的版本中,此功能被命名爲「服務功能」。 咱們已將該名稱更改成「鏈接的服務」。
鏈接的服務即 Visual Studio 2017 中新式的「添加鏈接的服務」功能或「添加服務引用」功能。 鏈接的服務功能可以使應用與服務間的鏈接更輕鬆。 解決方案資源管理器中提供了一個用於 Web 和移動項目類型的名爲「鏈接的服務」的新節點。 雙擊此節點會在 Visual Studio 中打開一個新的整頁選項卡,可在其中發現可鏈接到的熱門 Microsoft 服務。
在「鏈接的服務」頁上選擇一個服務將調用「鏈接的服務嚮導」,該向導會配置項目、下載必要的 NuGet 數據包,從而幫助快速輕鬆地根據服務須要進行編碼。
經過 Visual Studio 2017 可輕鬆獲取其餘工做負載和組件,而無需離開 IDE。 利用「快速啓動」可查找並啓動任何工做負荷或單個組件的 Visual Studio 安裝程序。
若是找不到正在尋找的模板,也能夠從「新建項目」對話框中打開 Visual Studio 安裝程序。
Visual Studio 2017 向 Visual C++ 環境引入了許多更新和修補程序。 感謝你報告 bug! 咱們修復了編譯器和工具中的 250 多個 bug 和已報告問題,其中不少是客戶經過 Microsoft Connect 提交的。 咱們在此版本中着手了 STL 的性能改進。 如今默認使用全新的基於 SQLite 的數據庫引擎。 這將提升數據庫操做(如「轉到定義」和「查找全部引用」)的速度,並將極大地縮短初始解決方案分析時間。 現提供原始 C++ 工做流的更細化的安裝體驗。 咱們添加了可選組件,使你可以僅安裝所需工具。 Visual Studio 中的 CMake 支持已準備好展示它的強大功能! 直接將 CMake 項目加載到 VS 中並當即開始編寫代碼。 改進了「打開文件夾」C++ 體驗,所以能夠直接將源代碼編入 VS 中,而無需建立任何 VS 解決方案和項目。 「導航到」現稱爲「轉到」,這個涵蓋性術語針對一組新的導航篩選器。 這使用戶可更輕鬆地找到正確結果,尤爲在較大代碼庫中。
用於強制執行 C++ 核心準則 的 C++ 核心檢查器現已經過 Visual Studio 分發。 只需在項目「屬性」頁的「代碼分析擴展」對話框中啓動檢查器,即會在運行代碼分析時包含擴展。
咱們更新了 C++ 編譯器和標準庫,不只加強了對 C++11 和 C++14 功能的支持,還引入了對預期推出的某些 C++17 標準功能的初步支持。 編譯器支持通用 constexpr 和聚合的 NSDMI,具備 C++14 標準版中的所有新增功能。 請注意,編譯器仍缺乏 C++11 和 C++98 標準版中的一些功能。 Visual Studio 2017 容許結合使用 /sdl 和 /await。 刪除了協同程序的 /RTC 限制。
此版本在優化和代碼生成方面作出了若干改進。 顯著改進包括:
現針對 C++ 本機項目和 C++ /CLI 項目有了更佳的配置更改性能,後者的性能增長更爲明顯。 第一次激活解決方案配置時,如今的速度會更快,且此解決方案配置的全部後續激活幾乎可瞬時完成。
如今默認使用全新的基於 SQLite 的數據庫引擎。 這將提升數據庫操做(如「轉到定義」和「查找全部引用」)的速度,並將極大地縮短初始解決方案分析時間。 設置已移至「工具」>「選項」>「文本編輯器」>「C/C++」>「高級」下(以前位於...「C/C++」>「實驗」下)。
咱們改進了不使用預編譯標頭的項目和文件的 IntelliSense 性能 - 爲當前文件中的標頭建立自動預編譯標頭。
其餘更新包括:
添了新的實驗性預測 IntelliSense 功能,此功能可根據上下文篩選成員列表中的所示內容。
在新的「查找全部引用」UI 中,可瞭解是否要從 C++ 代碼結果中的變量進行讀取或向其寫入。
已將「點到箭頭」IntelliSense 功能從實驗級提高爲高級,且如今爲默認啓用。 編輯器功能「展開做用域」和「展開優先級」也已從實驗級提高爲高級。
實驗性的重構功能「更改簽名」和「提取函數」現默承認用。
咱們啓用了用於 C++ 項目的新實驗性功能「快速項目加載」。 下次打開 C++ 項目時,加載速度將更快,而再下一次的加載速度甚至還會更快!
改進了「打開文件夾」體驗。 經過「打開文件夾」加載源,可編輯、生成和調試非 MSBuild C++ 項目。 經過如下 json 文件自定義體驗:
無需在根文件夾中建立 CppProperties.json 文件,C++ IntelliSense 即可正常工做。 此外,咱們增添了一個新的下拉列表,容許用戶在分別由 CMake 和 CppProperties.json 文件提供的配置之間輕鬆切換。 「打開文件夾」中的 CMake 支持:在使用「打開文件夾」打開 CMake 項目時會自動配置用於 C++ 編輯、生成和調試的環境。
經過 CMakeLists.txt 文件所在的同一文件夾中的 CMakeSettings.json 文件提供進一步的配置支持。
使用 C++ 的 Windows 桌面開發:
現提供原始 C++ 工做流的更細化的安裝體驗。 咱們添加了可選組件,使你可以僅安裝所需工具。 請注意,在安裝程序用戶界面中列出的組件的安裝大小的指示並不許確,並且它低估了整個大小。
若要在 C++ 桌面工做負載中成功建立 Win32 項目,則必須安裝工具集和 Windows SDK。 安裝推薦(選中)的組件「VC++ 2017 v141 工具集(x8六、x64)」和「Windows 10 SDK (10.0.14393)」能夠確保正常運行。 若是未安裝所需工具,將沒法成功建立項目,且嚮導將掛起。
使用 C++ 的 Linux 開發:
使用 C++ 的遊戲開發:
使用 C++ 的移動開發(Android 和 iOS):
通用 Windows 平臺開發:
Visual Studio 2017 附帶的 Clang/C2 工具集如今支持 /bigobj 開關,這對生成大項目來講相當重要。 它還在編譯器的前端和後端進行了多項重要的 bug 修復。
此版本引入了對 C# 7.0 和 Visual Basic 15 語言功能的支持,包括:
對於 C#:
Task<T>
和 Task
。對於 Visual Basic:
Dim point As (x As Integer, y As Integer) = GetOffset()
。&B1001_0011
。有關詳細信息,請關注咱們在 CSharpLang GitHub 和 VBLang GitHub 上的語言設計,以詳細瞭解這些設計及其餘建議的語言擴展。
Visual Studio 提供許多重構,幫助提升工做效率並使代碼更易讀。 下面列出了部分重構:
out
變量聲明:Ctrl+.
單擊一下,提取某文件中的類型並將其置於帶匹配名稱的另外一文件。Ctrl+.
。String.Format
轉換爲字符串插值:藉助此「快速操做」利用 C# 6 語言功能。以 Visual Studio 對 EditorConfig 的支持爲基礎,咱們與社區協做,將 .NET 代碼樣式設置添加到了文件格式。 這意味着你能夠配置團隊的代碼樣式約定、將其簽入源控件,並在開發人員鍵入時讓衝突實時顯示在編輯器中。 能夠在 Roslyn 存儲庫的 .editorconfig 中或此文檔中查看全部代碼樣式選項。 可經過「工具」>「選項」>「文本編輯器」>「[C#/Basic]」>「代碼樣式」繼續配置特定於計算機的代碼樣式設置,而且這些規則會在 EditorConfig 存在且與之衝突時被覆蓋。
咱們還添加/更新了樣式分析器,以幫助你自定義和強制執行團隊的編碼約定,包括:
注意:其中部分代碼樣式規則在編輯器中默認配置爲「建議」。
此版本還改進了 IntelliSense,可幫助在處理較大解決方案或不熟悉的代碼庫時提升工做效率。 咱們爲 IntelliSense 添加了圖標任務欄,可供你按類型(如方法、屬性、類等)篩選成員列表。 每一個篩選器切換都具備關聯的鍵盤快捷方式,能夠經過將鼠標懸停在該圖標上來發現。 若要啓用此功能,請轉到「工具」>「選項」>「文本編輯器」>「[C# / Basic]」>「IntelliSense」,選中篩選選項並突出顯示。
Enter
鍵,將一個長字符串拆分爲多個串聯字符串。對 F# 4.1 語言功能的支持:
[<Struct>]
屬性的結構記錄支持(由 Will Smith 完成)。[<Struct>]
屬性的結構可區分聯合支持。Result<'TSuccess, 'TFailure>
類型,帶有 FSharp.Core 中的支持函數(由 Oskar Gewalli 完成)。fixed
關鍵字,其支持在堆棧上本地固定指針類型。namespace rec
和 module rec
的相互引用類型和模塊。對 F# 編譯器和 FSharp.Core 進行了許多改進,大部分都是由 F# 社區完成:
基於 Roslyn 工做區的新編輯器具備許多新的 IDE 功能,由優秀的 F# 社區完成:
EditorBrowsable(EditorBrowsableState.Never)
屬性(由 Vasily Kirichenko 完成)。new
關鍵字分析器和 Codefix(由 Vasily Kirichenko 完成)。open
語句分析器和 Codefix(由 Vasily Kirichenko 完成)。此外,社區還提供瞭如下內容:
對 .NET CLI 中的 F# 的支持也是由 Enrico Sada 構建的。
最後,咱們要特別感謝整個 F# 社區爲 VS 2017 中 F# 工具版本進行內部測試、歸檔 bug、促進討論以及實現 bug 修復和功能所做出的努力。 沒有 F# 社區,就不會有 VS 2017 的成功。 若要查看完整的參與者列表,請參閱此處。
TypeScript 2.1 適用於 Visual Studio 中的全部 TypeScript 項目。 TypeScript 2.1 提供下層 async/await、更好的類型推理、本地對象擴展及更多功能! 若要詳細瞭解此版本,請查看 發佈博客文章或完整更改日誌。
提供新的 JavaScript 語言服務,並默認啓用。 新服務提供更強大的 IntelliSense,並增添了對 JSDoc 註釋批註、ES6 和常見 JS 模塊格式的 IntelliSense 支持。 此外,它還支持 JSX 語法和 ES2016 的功能,如生成器、模塊和修飾器。 有關詳細信息,請參閱此博客文章或 GitHub 上的 JavaScript IntelliSense 文檔。
改進性能是此版本的一個重點所在。 除對提升內存和響應做出一些優化外,整個 JavaScript/TypeScript 語言服務也已移到 devenv.exe
以外的附屬進程,從而下降較大 VS 項目的內存佔用。 如此一來,在處理較大的 JavaScript 項目時,Visual Studio 進程的內存消耗更低,內存崩潰的可能性更小。 若要閱讀有關這些改進的詳細信息,請參閱此博客文章。
只需在調試運行到此行時單擊代碼行旁邊的圖標。 無需再設置臨時斷點,也沒必要再執行多個步驟來執行代碼和在所需行中止。 如今,調試器下停在中斷狀態時,「運行時單擊」圖標會在鼠標懸停位置的代碼行旁邊巧妙顯示。 將鼠標移動到圖標,而後單擊按鈕,代碼即會運行並在下次於代碼路徑中命中時停在該行。 可經過「調試」>「選項」>「啓用‘運行時單擊’」將其關閉。
在「附加到進程」對話框中輕鬆搜索,快速查找要將調試器附加到的進程。 將對正在運行的進程列表進行篩選,以篩選出與搜索條件匹配的項。 搜索篩選器具備記憶功能,會在從新打開對話框時提供以前的搜索內容。
現可快速從新附加到以前調試的進程。 觸發新的「調試/從新附加到進程」(Shift+Alt+P) 命令會當即嘗試將調試器附加到經過「附加到進程」對話框調用的上一個調試會話的最後若干進程中。 調試器將經過先嚐試匹配上一個進程 ID,而後匹配上一個進程名稱,再次附加到進程。 若是沒有找到匹配項,或找到多個具備相同名稱的進程,則會出現「附加到進程」對話框,可經過它選擇所需的進程。
新的「異常幫助窗口」可用於查看異常信息,該信息顯示在非模式對話框中,可對內部異常進行即時訪問。 診斷 NullReferenceException 時,現可從異常幫助器的右側快速查看哪些內容是 null。 現可在引起的異常處中止時單擊複選框添加條件,排除特定模塊引起的異常類型。 請閱讀此博客文章,更詳細地瞭解新的異常幫助器優點。
若是你將調試程序設置爲在引起時中斷,則能夠添加條件,以便調試程序僅在指定模塊中引起異常時才中斷。
現可更有效地將多個調試器窗口(調用堆棧、局部變量、自動、監視和快速監視)與屏幕閱讀器配合使用以及用於知足其餘輔助功能須要。
IntelliTrace 如今支持 ASP.NET Core 應用的 MVC、ADO.NET 和 HttpClient 事件。 這些事件將顯示在「診斷工具」窗口中的「事件」選項卡中。
啓動調試會話後,將在「診斷工具」窗口中看到應用程序新的「摘要」視圖。 今後處,將可以:
性能探查器現可附加到正在運行的進程。 CPU 使用率工具、GPU 使用率工具和性能嚮導現可附加到正在運行的進程。
對 CPU 使用率工具做出了幾處改進:
「調用方/被調用方」視圖。 可用於調查進出所選函數的函數調用的成本。
「源」視圖。 在 CPU 工具中選擇函數時顯示函數的源代碼。
當開始調試 ASP.NET 項目並選擇 Google Chrome 做爲瀏覽器後,Visual Studio 將調試在 Chrome 中運行的 JavaScript。 若是想要改成使用瀏覽器內的開發工具,能夠在「工具」>「選項」>「調試」下禁用此功能。
Visual Studio 2017 Enterprise 版中的實時單元測試功能會在編輯器中實時顯示單元測試結果和代碼覆蓋率。 它支持 MSTest、xUnit 和 Nunit for C# 以及面向 .NET Framework 的 VB 項目。
有關詳細信息,請參閱 Live Unit Testing 博客。
如今可經過在測試資源管理器中選擇一種測試方法將自動化和測試用例工做項關聯。 經過這種新體驗還可查看所選擇的測試方法的現有關聯。
只需在測試資源管理器中右鍵單擊測試,
並提供測試用例 ID 便可建立關聯。
在 Visual Studio 的先前版本中,可以使用工做項窗體完成此操做。 可以使用「工具」|「選項」打開兼容模式來啓用基於工做項窗體的體驗。
咱們已在 Visual Studio 2017 中添加了新的 Git 功能,用戶如今可在不離開 IDE 的狀況下執行更多端到端工做流。 可輕鬆查看傳出提交的差別、執行強制推送來完成變基或推送修改提交、復原上游分支以及從 VS 繼續修補程序變基。 此外,遷移到了 git.exe。 這使咱們可提供最新功能。 咱們支持 SSH、尊重你的配置選項,並在團隊資源管理器中精確顯示命令行中所示的內容。 若要了解有關這些功能的詳細信息,請查看博客文章。
在 Visual Studio 起始頁和團隊資源管理器中,已個性化和簡化了在 VSTS/TFS 中鏈接到項目和克隆存儲庫的過程,從而使得可以更快速且更輕鬆地找到要鏈接到的項目和存儲庫。 全新的「鏈接」頁面僅顯示已在全部 VSTS/TFS 服務器中映射和克隆的項目和存儲庫(而非顯示每一個項目的每一個存儲庫)。 此外,你在克隆存儲庫前再也不須要鏈接到某個項目。
當啓動對話框以鏈接到 VSTS 和 TFS 時,將看到通過從新設計的用戶體驗。 能夠看到添加的 TFS 服務器,而後是所選用戶賬戶的全部 VSTS 服務器、項目和存儲庫。 結果以樹形列出,以改善導航效果。 除了存儲庫外,還能夠鏈接到集合或項目。 有關詳細信息,請參閱 Connect to Team Projects(鏈接到團隊項目)。
若是從 Visual Studio 2017 鏈接到 Visual Studio Team Services 並打開工做項,Web 瀏覽器中會顯示工做項窗體。 不過,若是你鏈接到的是 Team Foundation Server 2015 或更早版本,則看到的是舊版工做項窗體。
藉助 Visual Studio 2017 中新的安裝程序技術,用戶可更好地掌控所安裝的工具。 一些用戶可能僅安裝核心 Visual Studio 編輯器,而另外一些可能安裝若干工做負荷。 如今,擴展做者可在清單中指定擴展所需的單獨組件,以便確保安裝了擴展所需的必備功能。
若是擴展不是使用新的 VSIX 格式生成的,用戶在嘗試安裝此擴展時,將會收到警告。 舊的 VSIX 格式不會指定所需實現的先決條件,所以當 Visual Studio 2017 中不具有這些先決條件時,該格式可能沒法正常工做。 新的 VSIX 格式是向後兼容的,適用於 Visual Studio 2012 及以前的全部版本。
更新了 VSIX 清單設計器,以反映對清單的更改。 在先決條件選項卡中,擴展開發人員可找到用於指定爲擴展先決條件的已安裝組件的列表。
在擴展安裝期間,VSIX 安裝程序將指示缺乏哪些組件,並會將其與擴展一併安裝。
在「擴展和更新」對話框中,現可計劃在須要從新啓動 Visual Studio 以前,要進行安裝、更新和卸載的多個擴展。 右下角有一個計劃任務的摘要。 若要刪除計劃內修改,請單擊當前計劃安裝的擴展旁邊的 X 符號。
當 VSIX 安裝程序檢測到全部 Visual Studio 窗口已關閉後,便會啓動以完成計劃的修改。
現可選擇使用 Ngen 安裝程序集。
如今,可選擇將文件安裝到位於擴展目錄以外的一系列所選文件夾。
在新的 Visual Studio 2017 中,漫遊擴展管理器可幫助跟蹤開發環境中你喜歡的全部擴展。 漫遊擴展可在雲中建立同步列表,從而跟蹤已安裝的擴展。
登陸到 Visual Studio 時,從「工具」>「擴展」和「更新」,單擊「漫遊擴展管理器」可快速查看擴展列表。 它可跟蹤已安裝的擴展,並讓你選擇要添加到漫遊列表的擴展。 庫中的新擴展與日俱增,此工具可以讓你快速輕鬆地使用鍾愛的擴展設置每一個開發環境。
使用此功能時將注意到 3 種圖標類型:
這些圖標將顯示列表當前的狀態。 可以使用處於任何狀態的任何擴展,所以可自定義你心中所想的內容! 或者,讓咱們爲你代勞! 登陸時下載的全部擴展都將做爲「漫遊且已安裝」的內容添加到列表,所以將包含在漫遊列表中,使你可在任意計算機上進行訪問!
自 Visual Studio 2017 起,突破性地改進了 Visual Studio 使用項目和項模板的方式,提高了模板發現的性能。 新的發現機制如今要求全部項和項目模板均遵循模板清單文件中定義的如下「vstemplate」架構。 模板清單文件中未定義的 Visual Studio 模板在「新建項目」或「新建項」對話框中將再也不可見。 新的擴展性工具將在 VSIX 生成期間生成清單;若是你具有隨附 MSI 包發佈的 Visual Studio 模板,則必須爲這些模板手動生成模板清單文件。 有關詳細信息,請參閱 Upgrading Custom Project and Item Templates for Visual Studio 2017(升級 Visual Studio 2017 的自定義項目和項模板)MSDN 頁面。
這包含新的基於 MSBuild 的 .NET Core 工具的 1.0 最終版本。 使用 Visual Studio 2017 可建立 .NET Standard 庫、.NET Core 應用/庫和使用新 csproj 格式的 ASP.NET web 項目。
在安裝程序中,.NET Core 工具自動包含在「ASP.NET 和 Web 開發」工做負載中,且在「.NET 桌面開發」工做負載中做爲可選組件。 若是僅要開發跨平臺使用的 .NET Core 應用程序,可以使用安裝程序的「其餘工具集」部分中的「.NET Core 跨平臺開發」工做負載來僅安裝 .NET Core 和 ASP.NET Core 工具。
此版本中的高級功能包括:
請參閱 .NET 博客以瞭解更多詳細信息。
此更新的 .NET Native 工具鏈添加了好幾個優化功能,可提升 Visual Studio 中託管的 UWP 應用的運行時性能。 此版本包含 600 多個 bug 修復和功能,不只解決了客戶的主要反饋問題,並且還提升了工具鏈的整體質量。
.NET Core NuGet 框架庫的這次更新解決了客戶報告的許多關鍵問題。 現有的 UWP 項目可使用 NuGet 引用管理器更新到此新版本。 此外,新的 .NET Core 包中包含 .NET Native 工具鏈。
此版本中包括 Windows 10 週年更新的 Windows SDK 和 Windows Phone 仿真器。
清單設計器進行了可視化刷新,現還可生成 UWP 應用的視覺資產。 現可以使用單個源映像建立各類尺寸的磁貼、徽標、圖標和初始屏幕,以適合應用針對的每種設備的大小。
如今,通用 Windows 平臺工具可檢測一些與輔助功能和性能相關的常見問題。 經過在「診斷工具」窗口的「選擇工具」菜單中啓用「UI 分析」工具,可報告這些問題,並隨附有關闡釋問題緣由和解決方法的有用文章的連接。 開發時啓用 UI 分析可以使 UI 性能和輔助功能處於應用程序開發前沿。
Visual Studio 2017 中包括 Xamarin 4.3。 除了 bug 修復外,該版本還添加了對 tvOS 的支持,提高了 iOS 資產目錄支持,改進了 XML 編輯體驗,並在建立 iOS 應用時添加了 SSL/TLS 和 HttpClient 實現的選擇器。 有關更多信息,請參閱 Xamarin 發行說明。
此 Visual Studio 2017 版包括如下改進:
支持 iOS 10 和 XCode 8。 用於 iOS 開發的 remotebuild
服務器代理的更新現包括 XCode 8 支持。
錯誤着色。 診斷生成故障常常須要開發人員通讀生成輸出,所以咱們開始在生成輸出窗格中將錯誤着色,讓讀取變得更輕鬆。 此外,還添加了標頭來描述生成進度中的步驟,幫助開發人員識別生成進度中出現故障的位置。
適用於 Android 和 Windows 的生成工具和仿真程序如今是可選的。 可經過生成/部署菜單欄動態獲取它們。 此版本的 Visual Studio 不支持 Windows Store 8.1 項目。 建議你以 Windows 10 爲目標來更新 Cordova 項目。 最低的受支持 Cordova 版本提高至 6.0.0。 面向低於 6.0.0 的 Cordova 版本的項目只有在 config.xml
中升級其項目才能在 Visual Studio 2017 中進行生成和部署。
適用於 Visual Studio 的 Node.js 工具將 Visual Studio 變成功能強大的 Node.js 開發環境。 此版本側重穩定性、性能和整體產品質量,包括:
感謝你與全部參與者們爲此版適用於 Visual Studio 的 Node.js 工具的推出所作出的積極貢獻。 有關詳細信息,請查看開放源 GitHub 上的 Node.js 工具項目。
使用 Visual Studio 編寫和調試適用於全部平臺的 Unity 遊戲。 Visual Studio Tools for Unity 3 現已可經過新的 Visual Studio 2017 安裝程序中的「使用 Unity 的遊戲開發」工做負載進行安裝。 Visual Studio Tools for Unity 3 側重於改進 Unity 開發人員的代碼編輯和調試體驗,以及整體產品質量,包括:
爲了將 Visual Studio 2017 DevOps 功能擴展到 SQL Server 數據庫開發,Redgate SQL Prompt、Redgate SQL 搜索和 Redgate ReadyRoll 現可用於數據存儲和處理工做負載。
Visual Studio 2017 包括 NuGet 4.0。 此版本側重於支持大多數項目類型的包引用、質量改進和性能改進:
Visual Studio 中如今容許在運行 WPF 或通用 Windows 應用的同時編輯 XAML。 在 Visual Studio 中調試應用時,可在 XAML 代碼編輯器中對標記做出更改,且所作的更改會反應在運行的應用中,而無需從新進行編譯。
 * 對於須要前綴的類型,若是已存在對命名空間的引用,IntelliSense 將自動完成前綴。
命名空間前綴重命名重構:可從上下文菜單或在光標位於前綴上時使用鍵盤快捷方式 Ctrl+R+R 調用重命名操做。 還可在應用更改以前預覽更改。
刪除命名空間和對其進行排序:現可從上下文菜單或經過鍵盤快捷方式 Ctrl+R+G 刪除沒必要要的命名空間並對其進行排序。 若是 XAML 文檔具備沒必要要的命名空間,還將看到一個可用於刪除這些命名空間的燈泡標記。
對 XAML 編輯器的 .editorconfig 支持:可在 .editorconfig 文件中定義 indent_style、indent_size 和 tab_width 的設置,將用此設置替代「工具」>「選項」中定義的設置。
用於 XAML 編輯器的結構可視化工具:結構可視化工具(即縮進參考線)現已內置到 Visual Studio 中,無需單獨擴展。 此功能提供當前所處理的代碼塊的上下文,一眼便能看到,無需滾動。
Visual Studio 2017 包含了 SQL Server Data Tools 的最新更新,該更新支持 Azure SQL 數據庫和 SQL Server 2016 的最新功能。
此版本經過使用 Visual Studio,在全部 SQL Server 支持版本和數據庫平臺上(本地和雲),聚集開發、測試和部署數據庫的簡便性於一體。 版本還包括了數據庫可編程性外圍應用加強功能,並改善了 SQL Server Data Tools 中的 SQL 鏈接體驗。如今只需輕鬆地單擊一下,便可自動發現可鏈接到的 SQL Server 和 Azure SQL 數據庫。
此外,Visual Studio 2017 解決了新的 Azure SQL Database 身份驗證類型、Azure Active Directory 集成和密碼身份驗證問題。
Visual Studio 2017 包括開發人員分析工具 v8.6,其中包含如下改進:
有關詳細信息,請參閱 Microsoft Azure 文檔中的技術發行說明。
此版包含了附帶最新功能和更新的 Office 開發人員工具,具體以下:
若是在 Visual Studio Enterprise 中設置了依賴關係驗證關係圖(又稱層關係圖),則在代碼編輯器中鍵入代碼時可實時得到體系結構依賴關係規則的任何違反行爲的通知。 「錯誤列表」中顯示錯誤,文本編輯器中的波形曲線顯示此違反行爲的精確位置。 如今下降了引入非必需依賴關係的可能性。
重構了 Visual Studio 2017 開發人員命令提示符腳本,支持新的安裝體驗:
common7\tools\vsdevcmd.bat -help
(從 Visual Studio 安裝目錄)以獲取詳細信息。現可以使用新的 Visual Studio 安裝程序安裝 Azure SDK for .NET Visual Studio。 若是之前已使用 Web 平臺安裝程序安裝 Azure SDK for .NET,現則可以使用新的 Visual Studio 安裝程序安裝 Azure 工做負荷以獲取相同組件。 安裝的包與 SDK 2.9.5 版本具備相同的功能級別。 對於此版本和全部將來版本的 Visual Studio,只能經過 Visual Studio 安裝程序得到 Azure SDK for .NET。
Visual Studio 2017 包括升級反饋體驗,可改善信息跟進和協做。 做爲這次升級的一部分,你將注意到 Visual Studio 中「問題報告」體驗的協做性加強,且補充了複合式 Web 門戶,造成徹底端對端反饋解決方案。 如今,能夠搜索、關注、投票並獲取以前經過 Visual Studio IDE 的「報告問題」功能提供的全部反饋的最新更新。 這些加強的體驗針對咱們收到的衆多用戶反饋,且讓用戶可以與咱們的團隊進行雙向交流。
如下是有關此版本中的已知問題和可用解決方法的說明。
在某些狀況下,Windows SDK 安裝可能會失敗,並返回代碼 -2147023293。 安裝日誌 dd_setup__errors.log 會顯示以下相似錯誤:包 'Win10SDK_10.0.14393.795,version=10.0.14393.79501' 安裝失敗。 (詳細信息)返回代碼:-2147023293 返回代碼詳情:安裝時發生嚴重錯誤。 請注意,確切的包名稱取決於已選擇安裝的 Windows 10 SDK。
致使此問題的緣由可能有多個。 若要解決該問題,請嘗試如下步驟:
打開 JavaScript 代碼超過 25Mb 的項目時,將顯示錯誤「已對項目 禁用語言服務,由於它包含大量 .js 文件。 請考慮使用 'tsconfig.json' 文件的 'exclude' 部分排除文件。」
使用以下代碼向項目根添加 tsconfig.json
:
{ "compilerOptions": { "allowJs": true, // These settings apply to .js files as well as .ts files "noEmit": true // Do not compile the JS (or TS) files in this project on build }, "exclude": [ "node_modules", // Don't include any JavaScript found under "node_modules" or "bower_components" "bower_components" ] }
Add additional folders with JavaScript code libraries. Another common one is Scripts/Office/1
if you're using office-js.
ASP.NET Core 項目中的 TypeScript 文件不具備任何 IntelliSense 且當前未在生成中編譯。
向項目根添加一個空的 tsconfig.json
文件。
若是解決方案中對同一項目的項目引用的大小寫或路徑不一樣,則 NuGet 還原可能會不起做用。 NuGet#4574
將全部項目引用的大小寫和相對路徑更新爲均相同。
有時沒法在包管理器控制檯中使用 Enter 鍵。 若是看到此內容,請在修補程序上籤出進程,並提供有關重現步驟的其餘任何有用信息。 NuGet#4204 NuGet#4570
打開該解決方案以前,重啓 Visual Studio 並打開 PMC。 或者,請嘗試刪除 project.lock.json 而後再還原。
有時,所用包具備帶無效簽名的程序集或包版本設置有「DateTime」貼標時,會致使包自動還原無限循環運行。 NuGet#4542
目前沒有解決方法。
NuGet 包管理器不顯示,且不容許添加/更新 DotNetCLITools。 NuGet#4256
必須在項目文件中手動編輯 DotNetCLIToolReferences。
對於 .NET Core 項目,Visual Studio 中的 NuGet 還原不聽從項目的 PackageId 屬性。 NuGet#4586
使用命令行運行還原。
'obj' 文件夾被刪除後 Visual Studio 沒法還原 PackageReferences。 NuGet#4528
手動建立 'obj' 文件夾後應可正常進行還原。
在控制檯中手動使用 Update-Package 對剛剛轉換的 PackageReferences 項目僅適用一次。 NuGet#4431
目前沒有解決方法。
在 Visual Studio 中對目標框架版本重定目標可能會致使 Intellisense 不完整。 將 PackageReferences 用做包管理器格式時可能出現這種狀況。 NuGet#4216
手動進行還原。
面向 .NET461 且基於 PackageReference 的項目引用另外一個基於 PackageReference 但面向 .NETStandard 的項目時,msbuild /t:restore 失敗。 NuGet#4532
目前沒有解決方法。
在 Visual Studio 中運行 MVC4 項目時,若是使用 SQL Server Express LocalDB 2012,則經過應用程序訪問數據庫可能會失敗。 失敗的緣由是因爲 MVC4 項目默認依賴於 SQL Server Express LocalDB 2012,而其未與 Visual Studio 2017 一併安裝。
升級項目以使用 SQL Server Express LocalDB 2016,或者在計算機上手動下載並安裝 SQL Server Express LocalDB 2012。
有關 .NET Core 和 ASP.NET Core 工具的當前問題列表,請參閱 GitHub 頁面。
未能發現 UWP 項目,且 Visual Studio VS2017 中建立了經過 UITestMethod 屬性修飾的測試方法。
將 MSTest.TestAdapter NuGet 包升級到最新版本 (1.1.12)。
若是測試項目在 Visual Studio 建立且具備經過 DeploymentItem 屬性修飾的測試,則這些項目將沒法運行,進而引起 FileNotFound 異常。
還要在 test method\containing 測試類上添加如下 DeploymentItem:[DeploymentItem("Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll")]
。 此問題將在即將推出的 MSTest.TestFramework 和 MSTest.TestAdapter 版本中進行修復。
向包含 XAML 文件的項目嘗試添加自定義命令或自定義工具窗口時,可能會致使未能向項目添加自定義命令或工具窗口。 可能會出現包含文本「序列包含多個匹配元素」的錯誤。
在 Visual Studio 中右鍵單擊項目時 Application Insights 可擴展提供程序加載失敗。 這是由於在加載解決方案後,可擴展提供程序會在後臺線程中從 NuGet 加載二進制文件。 某些可擴展提供程序(如適用於 PHP 和 Azure Service Fabric 的可擴展提供程序)已經安裝了,所以它們不存在這個問題。 Visual Studio 2017 初始版本後不久將經過自動更新對此問題進行修復。
使用管理員權限打開命令提示符,而後根據 Visual Studio 版本運行如下命令:
Visual Studio Enterprise
Visual Studio Professional
Visual Studio 社區
使用不是經過 Visual Studio 2017 建立的 Application Insights 配置的 ASP.NET Core 項目將沒法運行。 嘗試運行此類應用會出現錯誤「InvalidOperationException:未註冊 'Microsoft.ApplicationInsights.AspNetCore.JavascriptSnippet' 類型的服務。」
使用 Application Insights 配置以後,向文件 Views/Shared/_Layout.cshtml 添加一個 JavaScript 代碼段。 有兩種解決方法,具體取決因而否要 Application Insights 從應用收集頁面視圖:
若是存在孤立的 Git index.lock,則執行更改索引的 Git 命令會失敗,該問題起初報告爲 Git 撤消和取消暫存失敗。 Git 使用此文件來向其餘 Git 進程指示,該存儲庫已鎖定要進行編輯。 若是編輯進程崩潰或終止,則 index.lock file 可能會滯後並阻止其餘 Git 進程編輯存儲庫。
出現此問題時,請查看存儲庫的 .git/ 文件夾,檢查是否存在 index.lock 文件。 若是存在,且你當前並未運行活動的 Git 命令,則請刪除該文件。
在團隊資源管理器中經過 SSH 克隆失敗。 將來更新中將提供此問題的修補程序。
如要使用 SSH,請從命令行克隆,而後在團隊資源管理器中將存儲庫添加到本地存儲庫列表。 也可在團隊資源管理器中經過 HTTP 克隆,而後在「設置」>「存儲庫設置」>「遠程」中將遠程設置爲使用 SSH。
在未首先從各個組件中選擇 .NET Framework 3.5 開發工具的狀況下,在新計算機上安裝 Visual Studio 2017 並生成 .NET 2.0(或 3.0/3.5)項目後,即便項目面向 .NET 2.0,生成後的某些程序集(例如資源)也被標記爲 .NET4.0。 這是由於 Visual Studio 2017 默認再也不安裝 .NET Framework 3.5 SDK,而因爲此 SDK 缺失,生成進程會默認爲 .NET 4.X SDK。
.NET 3.5 SDK 如今僅爲可選組件,所以若是開發面向 .NET 3.5 產品 (2.0/3.0/3.5),則安裝期間仍需從各個組件選項卡中選擇「.NET Framework 3.5 開發工具」。 這會在生成進程期間所使用的計算機上安裝所需的 .NET 3.5 SDK。
這是一個間歇性的 localDB 2014 已知問題,出現此問題時在 x86 計算機上沒法鏈接 (LocalDB)\MSSQLLocalDB。
在命令提示符中運行如下命令:
若是使用工做流和 SharePoint 活動建立新的 SharePoint 外接程序或解決方案項目,在生成項目後,可能會在工做流設計器中看到以下錯誤:「因爲 XAML 中存在的錯誤,致使沒法加載活動」。 默認狀況下,新的 SharePoint 外接程序項目面向 .NET Framework 4.5.2。 爲了在工做流中使用 SharePoint 活動,項目必須面向 .NET Framework 4.5。
可能沒法生成包含工做流的 SharePoint 項目,並出現如下錯誤:「命名空間 'Microsoft' 中不存在類型或命名空間名稱 'Activities' (是否缺乏程序集引用?)」。
建立 SharePoint 外接程序項目時,新建項目對話框將基於你提供的站點 URL 嘗試檢測 SharePoint 的正確版本。 可是,若是還安裝了 Visual Studio 2015 或舊版 SharePoint 客戶端組件,則新建項目對話框可能會錯誤地斷定項目面向的是 SharePoint 2016 而非 SharePoint Online。
對於新項目,在建立新 SharePoint 外接程序項目時,請確保並驗證新項目對話框的最後一頁已選擇項目所面向的 SharePoint 的正確版本。 對於現有項目,能夠經過執行如下操做更改項目所面向的 SharePoint 的版本:
_officeintellisense.js 文件包含對 Office 對象的聲明,該對象與 office.d.ts 文件中聲明的對象衝突。
這些警告不會影響項目,你能夠刪除這些警告,刪除方式是註釋掉 Scripts\Office\ _officeintellisense.js 文件中額外的「var Office」聲明或在解決方案資源管理器中使用「從項目排除」上下文菜單從項目中排除此文件。
Visual Studio 生成工具 SKU 中的 Web 開發工具工做負載不包含任何面向 .NET 的包。 這意味着 .NET 二進制文件僅可生成爲面向 4.6。
從 Microsoft 手動下載面向 .NET 的包並將其安裝到生成計算機。
對於 .NET Core 和 ASP.NET Core 項目,由通配模式包括的任何文件只有包含在項目根目錄下才會顯示在解決方案資源管理器中。 不會顯示位於項目根目錄以外的任何文件。 打開「顯示全部文件」不能解決此問題。 也沒法經過「搜索」、「在文件中查找」、「轉到」或「轉到定義」導航到這些文件。
對於在解決方案資源管理器中顯示缺乏的文件或導航到這些文件,目前沒有已知的解決方法。 可是,生成和調試這些項目應該不會遇到任何問題。 在大多數狀況下,經過手動打開這些文件便可正常編輯它們。 建議暫時使用單獨連接的文件來代替外部通配模式。
VS 團隊資源管理器再也不隨附 VS Test Professional SKU 一併安裝,該管理器用於訪問 Excel-based/SSRS-based based reports from TFS Warehouse/Cube。 此問題不會影響到 Microsoft 測試管理器 (MTM) 客戶端 – 它將繼續工做,不會產生任何已知問題。
在咱們推出 VS 團隊資源管理器以前,你可安裝並使用此處提供的 VS Enterprise 2017 RC 訪問團隊資源管理器。 安裝 VS Enterprise 2017 RC 將致使 MTM 客戶端許可證進入預覽版狀態,該狀態將在 2017 年 7 月前有效,其失效以前將推出 VS 團隊資源管理器。 若是卸載 VS Enterprise 2017 RC,MTM 客戶端許可證將在幾天後到期。 經過從 Visual Studio 安裝程序中修復 VS Test Professional 2017 安裝問題,會將 MTM 客戶端還原爲 RTW 軟件狀態,進而解決許可證到期問題。