Visual Studio 2017 已知问题 Qamp;amp;A
已知問題
?以下是有關此版本中的已知問題和可用解決方法的說明。M姐會給大家進行詳細的解答
安裝問題
編輯器和 IDE 問題
NuGet 問題
實時單元測試問題
測試工具問題
輕量級解決方案加載問題
Web 工具已知問題
.NET Core 工具問題
“打開文件夾”問題
擴展性問題
Application Insights 問題
團隊資源管理器問題
托管的工作負載開發(fā)問題
其他問題
安裝問題
?Windows 10 SDK 安裝失敗,返回代碼為 -2147023293
問題:
在某些情況下,Windows SDK 安裝可能會失敗,并返回代碼 -2147023293。?
安裝日志 dd_setup__errors.log 會顯示如下類似錯誤:包 'Win10SDK_10.0.14393.795,version=10.0.14393.79501' 安裝失敗。 (詳細信息)返回代碼:-2147023293 返回代碼詳情:安裝時發(fā)生嚴重錯誤。 請注意,確切的包名稱取決于已選擇安裝的 Windows 10 SDK。
解決方法:
導致此問題的原因可能有多個。 若要解決該問題,請嘗試以下步驟:
獨立于 Visual Studio 安裝 Windows 10 SDK。 可從?Windows 開發(fā)人員中心下載 Windows 10 SDK。
在低于 Windows 10 的 Windows 版本上進行安裝時,某些情況下,安裝失敗可能是由于缺少通用 C 運行時所導致。 對于 Windows 10 1507 運行時和 Windows 10 1511 運行時,可分別使用?KB2999226?和?KB3118401?進行安裝。
有關詳細信息,另請參閱?Visual Studio 開發(fā)人員社區(qū)門戶。
編輯器和 IDE 問題
?XML 文件不支持 EditorConfig
問題:
編輯 XML 文件時,未應用 .editorconfig 中定義的編碼樣式約定。
解決方法:
目前沒有解決方法。
尚不支持 EditorConfig insert_final_newline 屬性和 trim_trailing_whitespace 屬性
問題:
.editorconfig 文件中定義的 insert_final_newline 屬性和 trim_trailing_whitespace 屬性不起作用。
解決方法:
目前沒有解決方法。
JavaScript IntelliSense 停止運行
問題:
打開 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.
TypeScript 在 ASP.NET Core 項目中無法識別
問題:
ASP.NET Core 項目中的 TypeScript 文件不具有任何 IntelliSense 且當前未在生成中編譯。
解決方法:
向項目根添加一個空的?tsconfig.json?文件。
NuGet 問題
?當有多個項目引用解決方案中的另一項目時,NuGet 還原可能會失敗
問題:
如果解決方案中對同一項目的項目引用的大小寫或路徑不同,則 NuGet 還原可能會不起作用。?NuGet#4574
解決方法:
將所有項目引用的大小寫和相對路徑更新為均相同。
使用包管理器控制臺時,“Enter”鍵可能不起作用。
問題:
有時無法在包管理器控制臺中使用 Enter 鍵。 如果看到此內(nèi)容,請在修補程序上簽出進程,并提供有關重現(xiàn)步驟的其他任何有用信息。?NuGet#4204?NuGet#4570
解決方法:
打開該解決方案之前,重啟 Visual Studio 并打開 PMC。 或者,請嘗試刪除?project.lock.json?然后再還原。
在 .NET Core 項目中,所用包具有帶無效簽名的程序集時,可能會出現(xiàn)無限還原循環(huán)。
問題:
有時,所用包具有帶無效簽名的程序集或包版本設置有“DateTime”貼標時,會導致包自動還原無限循環(huán)運行。?NuGet#4542
解決方法:
目前沒有解決方法。
將無法使用 Nuget 包管理器查看、添加或更新 DotNetCLITools
問題:
NuGet 包管理器不顯示,且不允許添加/更新 DotNetCLITools。?NuGet#4256
解決方法:
必須在項目文件中手動編輯 DotNetCLIToolReferences。
如果對項目設置 PackageId 屬性,則 NuGet 包還原會失敗
問題:
對于 .NET Core 項目,Visual Studio 中的 NuGet 還原不遵從項目的 PackageId 屬性。?NuGet#4586
解決方法:
使用命令行運行還原。
項目不包含 'obj' 文件夾時,包還原可能失敗
問題:
'obj' 文件夾被刪除后 Visual Studio 無法還原 PackageReferences。?NuGet#4528
解決方法:
手動創(chuàng)建 'obj' 文件夾后應可正常進行還原。
在控制臺中使用 Update-Package 手動更新包可能會失敗
問題:
在控制臺中手動使用 Update-Package 對剛剛轉(zhuǎn)換的 PackageReferences 項目僅適用一次。?NuGet#4431
解決方法:
目前沒有解決方法。
對目標框架版本重定目標可能會導致 Intellisense 不完整
問題:
在 Visual Studio 中對目標框架版本重定目標可能會導致 Intellisense 不完整。 將 PackageReferences 用作包管理器格式時可能出現(xiàn)這種情況。?NuGet#4216
解決方法:
手動進行還原。
面向 .NET461 的項目引用面向 .NETStandard 的另一項目時 msbuild /t:restore 出現(xiàn)失敗
問題:
面向 .NET461 且基于 PackageReference 的項目引用另一個基于 PackageReference 但面向 .NETStandard 的項目時,msbuild /t:restore 失敗。?NuGet#4532
解決方法:
目前沒有解決方法。
實時單元測試問題
?實時單元測試不適用于 .NET Core 項目
問題:
.NET Core 項目不支持實時單元測試。
解決方法:
目前沒有解決方法。
Web 工具已知問題
?運行時 MVC4 項目不連接到 SQL Server LocalDB
問題:
在 Visual Studio 中運行 MVC4 項目時,如果使用 SQL Server Express LocalDB 2012,則通過應用程序訪問數(shù)據(jù)庫可能會失敗。?
失敗的原因是由于 MVC4 項目默認依賴于 SQL Server Express LocalDB 2012,而其未與 Visual Studio 2017 一并安裝。
解決方法:
升級項目以使用 SQL Server Express LocalDB 2016,或者在計算機上手動下載并安裝?SQL Server Express LocalDB 2012。
.NET Core 工具問題
?有關 .NET Core 和 ASP.NET Core 工具的當前問題列表,請參閱?GitHub 頁面。
GitHub地址:
https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md
“打開文件夾”問題
?編輯 launch.vs.json 或 tasks.vs.json 時 IntelliSense 不可用
問題:
編輯 launch.vs.json 或 tasks.vs.json 文件時,IntelliSense 不可用。
解決方法:
安裝“ASP.NET 和 Web 開發(fā)”工作負載。
C# 重構可能會生成不一致的結(jié)果
問題:
在文件夾模式下,重構 C# 或 VB 代碼可能會生成不一致的結(jié)果。
解決方法:
在解決方案模式下加載 C# 或 VB 項目。
在文件夾模式下 F10 無法啟動調(diào)試器
問題:
在文件夾模式下熱鍵 F10 無法啟動調(diào)試器。
解決方法:
使用 F5 或 F11,并在應用程序入口點設置一個斷點。
對 launch.vs.json 的未保存編輯可能會丟失
問題:
從上下文菜單選擇“調(diào)試和啟動設置”時,對 launch.vs.json 的未保存編輯將丟失。
解決方法:
從上下文菜單選擇“調(diào)試和啟動設置”之前請保存對文件所作的任何更改。
重載已經(jīng)在文件夾模式下編輯的項目可能會失敗,并出現(xiàn)一個對話框
問題:
如果已在文件夾模式下編輯過一個項目文件,則之后從解決方案模式重載時可能會失敗。
解決方法:
嘗試再次重載項目。 如果仍然無法加載,請重載解決方案。
測試工具問題
?未能發(fā)現(xiàn) UWP 項目,且 Visual Studio VS2017 中創(chuàng)建了 UITestMethod
問題:
未能發(fā)現(xiàn) UWP 項目,且 Visual Studio VS2017 中創(chuàng)建了通過 UITestMethod 屬性修飾的測試方法。
解決方法:
將 MSTest.TestAdapter NuGet 包升級到最新版本 (1.1.12)。
通過 DeploymentItem 屬性修飾測試時,未能從 Visual Studio 中運行測試。
問題:
如果測試項目在 Visual Studio 創(chuàng)建且具有通過 DeploymentItem 屬性修飾的測試,則這些項目將無法運行,進而引發(fā) FileNotFound 異常。
解決方法:
還要在 test method\containing 測試類上添加以下 DeploymentItem:[DeploymentItem("Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll")]。 此問題將在即將推出的 MSTest.TestFramework 和 MSTest.TestAdapter 版本中進行修復。
未能從 Visual Studio 中分析測試,出現(xiàn) MissingMethodException
問題:
未能從 Visual Studio 中分析測試方法,引發(fā) MissingMethodException。
解決方法:
沒有針對此問題的解決方法。
輕量級解決方案加載問題
?啟用輕量級解決方案加載后,某些擴展可能會發(fā)生意外行為
問題:
啟用輕量級解決方案加載后,某些擴展可能會發(fā)生意外行為。
解決方法:
禁用輕量級解決方案加載并重載解決方案。
啟用輕量級解決方案加載后,無法使用“編輯并繼續(xù)”
問題:
啟用輕量級解決方案加載后,可能無法按預期使用“編輯并繼續(xù)”。
解決方法:
使用“編輯并繼續(xù)”之前,請禁用輕量級解決方案加載并重載解決方案。
啟用輕量級解決方案加載后,F# 項目不會生成或支持符號導航
問題:
啟用輕量級解決方案加載后,F# 項目可能無法正確生成,且符號在“轉(zhuǎn)到”中可能不完全可用。
解決方法:
為包含 F# 項目的解決方案禁用輕量級解決方案加載。
啟用輕量級解決方案加載時會復制警告
問題:
在啟用輕量級解決方案加載的情況下生成解決方案時,生成所發(fā)出的項目文件警告可能會重復出現(xiàn)在錯誤列表中。
解決方法:
禁用輕量級解決方案加載并重載解決方案。
擴展性問題
?添加自定義命令或自定義工具窗口時出錯
問題:
向包含 XAML 文件的項目嘗試添加自定義命令或自定義工具窗口時,可能會導致未能向項目添加自定義命令或工具窗口。 可能會出現(xiàn)包含文本“序列包含多個匹配元素”的錯誤。
解決方法:
關閉所有打開的 XAML 文件。
關閉 Visual Studio。
啟動 Visual Studio 并打開項目。
(在加載 XAML 文件之前)向項目添加自定義命令或自定義工具窗口。
Application Insights 問題
?右鍵單擊項目時 Application Insights 可擴展提供程序加載失敗
問題:
在 Visual Studio 中右鍵單擊項目時 Application Insights 可擴展提供程序加載失敗。?
這是因為在加載解決方案后,可擴展提供程序會在后臺線程中從 NuGet 加載二進制文件。?
某些可擴展提供程序(如適用于 PHP 和 Azure Service Fabric 的可擴展提供程序)已經(jīng)安裝了,因此它們不存在這個問題。?
Visual Studio 2017 初始版本后不久將通過自動更新對此問題進行修復。
解決方法:
使用管理員權限打開命令提示符,然后根據(jù) Visual Studio 版本運行以下命令:
Visual Studio Enterprise
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled
Visual Studio Professional
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled
Visual Studio 社區(qū)
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled
某些 ASP.NET Core 項目無法為頁面視圖集合添加 Application Insights JavaScript 代碼段
問題:
使用不是通過 Visual Studio 2017 創(chuàng)建的 Application Insights 配置的 ASP.NET Core 項目將無法運行。 嘗試運行此類應用會出現(xiàn)錯誤“InvalidOperationException:未注冊 'Microsoft.ApplicationInsights.AspNetCore.JavascriptSnippet' 類型的服務。”
解決方法:
使用 Application Insights 配置之后,向文件 Views/Shared/_Layout.cshtml 添加一個 JavaScript 代碼段。 有兩種解決方法,具體取決于是否要 Application Insights 從應用收集頁面視圖:
收集頁面視圖。?向 Program.cs 中的 WebHostBuilder 添加 ".UseApplicationInsights()"。
不收集頁面視圖。?從 Views/Shared/_Layout.cshtml 刪除以下行:
@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
@Html.Raw(JavaScriptSnippet.FullScript)
團隊資源管理器問題
?如果存在孤立的 index.lock,則更改索引的 Git 命令可能會失敗
問題:
如果存在孤立的 Git index.lock,則執(zhí)行更改索引的 Git 命令會失敗,該問題起初報告為?Git 撤消和取消暫存失敗。?
Git 使用此文件來向其他 Git 進程指示,該存儲庫已鎖定要進行編輯。 如果編輯進程崩潰或終止,則 index.lock file 可能會滯后并阻止其他 Git 進程編輯存儲庫。
解決方法:
出現(xiàn)此問題時,請查看存儲庫的 .git/ 文件夾,檢查是否存在 index.lock 文件。 如果存在,且你當前并未運行活動的 Git 命令,則請刪除該文件。
通過 SSH 克隆失敗
問題:
在團隊資源管理器中通過 SSH 克隆失敗。 未來更新中將提供此問題的修補程序。
解決方法:
如要使用 SSH,請從命令行克隆,然后在團隊資源管理器中將存儲庫添加到本地存儲庫列表。 也可在團隊資源管理器中通過 HTTP 克隆,然后在“設置”>“存儲庫設置”>“遠程”中將遠程設置為使用 SSH。
在團隊資源管理器中取消 Git 命令不起作用
問題:
在團隊資源管理器中取消 Git 命令(例如克隆命令)不起作用,相反,仍會完成操作。 此問題不影響其他團隊資源管理器操作。
解決方法:
目前沒有解決方法。
托管的工作負載開發(fā)問題
?.NET 2.0/3.0/3.5 項目生成具有不正確目標的程序集
問題:
在未首先從各個組件中選擇 .NET Framework 3.5 開發(fā)工具的情況下,在新計算機上安裝 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 現(xiàn)在僅為可選組件,因此如果開發(fā)面向 .NET 3.5 產(chǎn)品 (2.0/3.0/3.5),則安裝期間仍需從各個組件選項卡中選擇“.NET Framework 3.5 開發(fā)工具”。
?這會在生成進程期間所使用的計算機上安裝所需的 .NET 3.5 SDK。
其他問題
?在 x86 計算機上無法連接到 (LocalDB)\MSSQLLocalDB
問題:
這是一個間歇性的 localDB 2014 已知問題,出現(xiàn)此問題時在 x86 計算機上無法連接 (LocalDB)\MSSQLLocalDB。
解決方法:
在命令提示符中運行以下命令:
sqllocaldb stop mssqllocaldb。
sqllocaldb delete mssqllocaldb。
sqllocaldb start mssqllocaldb。
無法在 SharePoint 工作流中創(chuàng)建函數(shù)斷點
問題:
Visual Studio 的“斷點”窗格以前允許創(chuàng)建類型為“工作流”的斷點。 此功能已被刪除。
解決方法:
通過右鍵單擊菜單在“設計器”視圖中創(chuàng)建斷點。
在工作流設計器中,SharePoint 工作流活動可能無法正確加載
問題:
如果使用工作流和 SharePoint 活動創(chuàng)建新的 SharePoint 外接程序或解決方案項目,在生成項目后,可能會在工作流設計器中看到如下錯誤:“由于 XAML 中存在的錯誤,導致無法加載活動”。?
默認情況下,新的 SharePoint 外接程序項目面向 .NET Framework 4.5.2。 為了在工作流中使用 SharePoint 活動,項目必須面向 .NET Framework 4.5。
解決方法:
從解決方案資源管理器中的上下文菜單或通過項目菜單訪問項目屬性。
在“應用程序”選項卡上,將“目標框架”設置為 .NET Framework 4.5。
使用動態(tài)值時,可能無法生成包含工作流的 SharePoint 項目
問題:
可能無法生成包含工作流的 SharePoint 項目,并出現(xiàn)以下錯誤:“命名空間 'Microsoft' 中不存在類型或命名空間名稱 'Activities' (是否缺少程序集引用?)”。
解決方法:
在解決方案資源管理器中選擇文件后,請在解決方案資源管理器中展開工作流節(jié)點,并通過按 F7 或通過上下文菜單查看項目中 workflow.xaml 文件的代碼。
將以下引用添加到部分:?Microsoft.Activities。
SharePoint 外接程序項目向?qū)Э赡軣o法正確檢測項目面向的 SharePoint 的版本
問題:
創(chuàng)建 SharePoint 外接程序項目時,新建項目對話框?qū)⒒谀闾峁┑恼军c URL 嘗試檢測 SharePoint 的正確版本。?
但是,如果還安裝了 Visual Studio 2015 或舊版 SharePoint 客戶端組件,則新建項目對話框可能會錯誤地判定項目面向的是 SharePoint 2016 而非 SharePoint Online。
解決方法:
對于新項目,在創(chuàng)建新 SharePoint 外接程序項目時,請確保并驗證新項目對話框的最后一頁已選擇項目所面向的 SharePoint 的正確版本。?
對于現(xiàn)有項目,可以通過執(zhí)行以下操作更改項目所面向的 SharePoint 的版本:
從解決方案資源管理器中的上下文菜單或通過項目菜單訪問項目屬性。
在 SharePoint 選項卡上,將目標 SharePoint 版本設置為項目所面向的 SharePoint 的正確版本。
Office Web 外接程序項目可能在錯誤列表中包含警告
問題:
_officeintellisense.js 文件包含對 Office 對象的聲明,該對象與 office.d.ts 文件中聲明的對象沖突。
解決方法:
這些警告不會影響項目,你可以刪除這些警告,刪除方式是注釋掉 Scripts\Office\ _officeintellisense.js 文件中額外的“var Office”聲明或在解決方案資源管理器中使用“從項目排除”上下文菜單從項目中排除此文件。
Visual Studio 生成工具 SKU 的 Web 開發(fā)工具工作負載中不包含面向 .NET 的包
問題:
Visual Studio 生成工具 SKU 中的 Web 開發(fā)工具工作負載不包含任何面向 .NET 的包。 這意味著 .NET 二進制文件僅可生成為面向 4.6。
解決方法:
從 Microsoft 手動下載面向 .NET 的包并將其安裝到生成計算機。
通過通配包含的文件如果位于項目根目錄外,將不會顯示在解決方案資源管理器中
問題:
對于 .NET Core 和 ASP.NET Core 項目,由通配模式包括的任何文件只有包含在項目根目錄下才會顯示在解決方案資源管理器中。?
不會顯示位于項目根目錄之外的任何文件。 打開“顯示所有文件”不能解決此問題。 也無法通過“搜索”、“在文件中查找”、“轉(zhuǎn)到”或“轉(zhuǎn)到定義”導航到這些文件。
解決方法:
對于在解決方案資源管理器中顯示缺少的文件或?qū)Ш降竭@些文件,目前沒有已知的解決方法。 但是,生成和調(diào)試這些項目應該不會遇到任何問題。?
在大多數(shù)情況下,通過手動打開這些文件即可正常編輯它們。 建議暫時使用單獨鏈接的文件來代替外部通配模式。
VS Test Professional 2017 SKU 不具備團隊資源管理器,限制了對 Excel-based/SSRS-based reports from TFS Warehouse/Cube 的訪問
問題:
VS 團隊資源管理器不再隨附 VS Test Professional SKU 一并安裝,該管理器用于訪問 Excel-based/SSRS-based based reports from TFS Warehouse/Cube。?
此問題不會影響到 Microsoft 測試管理器 (MTM) 客戶端 – 它將繼續(xù)工作,不會產(chǎn)生任何已知問題。
解決方法:
在我們推出 VS 團隊資源管理器之前,你可安裝并使用此處提供的 VS Enterprise 2017 RC 訪問團隊資源管理器。?
安裝 VS Enterprise 2017 RC 將導致 MTM 客戶端許可證進入預覽版狀態(tài),該狀態(tài)將在 2017 年 7 月前有效,其失效之前將推出 VS 團隊資源管理器。?
如果卸載 VS Enterprise 2017 RC,MTM 客戶端許可證將在幾天后到期。 通過從 Visual Studio 安裝程序中修復 VS Test Professional 2017 安裝問題,會將 MTM 客戶端還原為 RTW 軟件狀態(tài),進而解決許可證到期問題。
終于都整理完了……M姐手指要斷掉了……程序猿們要好好學習哦!!
相關文章:
Visual Studio 2017發(fā)布會:黃金時代的家族聚會
Visual Studio 2017 新功能(上)
Visual Studio 2017 新功能(下)
Visual Studio 2017正式版離線安裝及介紹
Visual Studio 20周年軟件趨勢隨想
原文鏈接:https://www.visualstudio.com/zh-cn/news/releasenotes/vs2017-relnotes
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
內(nèi)容轉(zhuǎn)載自公眾號
微軟中國MSDN 了解更多總結(jié)
以上是生活随笔為你收集整理的Visual Studio 2017 已知问题 Qamp;amp;A的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 20周年软件
- 下一篇: 后端架构高可用可伸缩讲解之高可用