共用方式為


Visual Studio 客戶體驗改善計劃

Visual Studio 客戶體驗改善計劃 (VSCEIP) 旨在幫助 Microsoft 隨著時間的推移改進 Visual Studio。 此程式會收集錯誤、電腦硬體以及使用者如何使用 Visual Studio 的相關資訊,而不會中斷使用者在電腦上的工作。 收集的資訊可協助 Microsoft 識別要改進的功能。 本文檔介紹瞭如何 選擇加入或退出 VSCEIP,並提供有關我們收集的數據類型和我們如何使用這些數據的一些信息。 它還提供了有關擴展作者如何避免無意中洩露個人或敏感信息的提示。

選擇退出診斷資料收集

鑑於我們收集資料的用途,以及其存取和保留的限制,建議您使用 Visual Studio 和 Windows 的預設隱私權設定。 不過,您可以選擇 退出 Visual Studio 體驗改善計畫。 當您選擇退出時,即表示您選擇退出 選擇性 診斷資料收集。 需要一些診斷資料收集,以確保 Visual Studio 安全、最新,並如預期般執行。 必要的診斷資料收集不會受到您選擇退出 VSCEIP 的影響。

備註

如果您有興趣檢視或刪除個人資料,請檢閱 Microsoft 的指引,請參閱 GDPR 的 Windows 資料主體要求。 如果您要尋找 GDPR 的一般資訊,請參閱 服務信任入口網站的 GDPR 區段。

備註

VSCEIP 遙測選擇加入或退出設定不適用於 Visual Studio 中的 [報告問題]。 當您回報問題時,只有在您按一下 [提交] 提供許可權時,才會收集記錄並將其傳送給 Microsoft。 如果您有興趣在提交「報告問題」之前管理日誌,請參閱 意見回饋資料隱私以 了解更多詳細資訊。

選擇加入或退出

依預設,VSCEIP 會開啟。 您可以按照以下說明將其關閉或重新開啟:

  1. 在 Visual Studio 中,選擇 [說明>] [隱私權>] [隱私權設定]。

    [ Visual Studio 體驗改善計畫 ] 對話方塊隨即開啟。

  2. 若要選擇退出,請選取 [ 否,我不想參與],然後選取 [確定]。 若要選擇加入,請選取 [ 是,我願意參與 (建議)],然後選取 [確定]。

    Visual Studio 體驗改善計畫對話方塊

登錄設定

如果您安裝 Visual Studio 的建置工具,則必須更新登錄以設定 VSCEIP。 企業客戶可以透過設定登錄基於的原則來建構群組原則,以選擇加入或退出 VSCEIP。

相關的登錄機碼和設定如下:

  • 在 64 位元作業系統上,金鑰 = HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSCommon\17.0\SQM
  • 在 32 位元作業系統上,金鑰 = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSCommon\17.0\SQM
  • 啟用群組原則時,金鑰 = HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\VisualStudio\SQM

條目 = 選擇加入

值 = (DWORD)

  • 0 已選擇退出(已關閉 VSCEIP)
  • 1 已選擇加入 (開啟 VSCEIP)

謹慎

不正確地編輯登錄可能會對系統造成嚴重的損害。 變更登錄之前,您應該先備份電腦所有的重要資料。 如果您在套用手動變更後遇到問題,也可以使用 「上次已知良好配置 」啟動選項。

如需 VSCEIP 所收集、處理或傳輸之資訊的詳細資訊,請參閱 Microsoft 隱私權聲明

Visual Studio 所收集的系統產生記錄

Visual Studio 會收集系統產生的記錄,以修正問題並改善產品品質。 以下是有關我們收集的資料類型以及我們如何使用這些資料的一些資訊。 它還提供了有關擴展作者如何避免無意中洩露個人或敏感信息的提示。

收集的資料類型

Visual Studio 會收集系統產生的當機記錄、UI 無回應,以及 CPU 或記憶體使用量過高。 我們還收集有關產品安裝或使用過程中遇到的錯誤的資訊。 收集的資料會根據錯誤而有所不同,可能包括堆疊追蹤、記憶體傾印和例外狀況資訊:

  • 針對高 CPU 使用率和無回應性,會收集相關 Visual Studio 執行緒的堆疊追蹤。

  • 如果某些執行緒的堆疊追蹤不足以判斷問題的根本原因,例如當機、無回應或記憶體使用量過高,我們會收集記憶體 傾印。 傾印代表錯誤發生時程序的狀態。

  • 對於非預期的錯誤情況,例如,嘗試寫入磁碟上的檔案時發生例外狀況,我們會收集有關例外狀況的資訊。 該資訊包括異常的名稱、發生異常的執行緒的堆疊追蹤、與異常相關聯的訊息以及與特定異常相關的其他資訊。

    下列收集資料的範例顯示例外狀況名稱、堆疊追蹤和例外狀況訊息:

    "Reserved.DataModel.Fault.Exception.TypeString": "System.IO.IOException",
    "Reserved.DataModel.Fault.Exception.StackTrace": "System.IO.__Error.WinIOError(Int32,String)\r\n
    System.IO.FileStream.Init(String,FileMode,FileAccess,Int32,Boolean,FileShare,Int32,FileOptions,SECURITY_ATTRIBUTES,String,Boolean,Boolean,Boolean)\r\n
    System.IO.FileStream..ctor(String,FileMode,FileAccess,FileShare,Int32,FileOptions,String,Boolean,Boolean,Boolean)\r\nSystem.IO.StreamWriter.CreateFile(String,Boolean,Boolean)\r\n
    System.IO.StreamWriter..ctor(String,Boolean,Encoding,Int32,Boolean)\r\n
    System.IO.StreamWriter..ctor(String,Boolean)\r\n
    System.IO.File.CreateText(String)\r\n
    Microsoft.VisualStudio.Setup.Services.FileSystem.CreateText(String,Boolean)\r\n
    Microsoft.VisualStudio.Setup.Cache.ChannelManifestRepository.WriteChannelManifest(IChannelManifest,String,String)\r\n
    Microsoft.VisualStudio.Setup.Cache.ChannelManifestRepository.AddChannel(ChannelManifestPair,Boolean)\r\n
    Microsoft.VisualStudio.Setup.Cache.CacheManager.AddChannel(ChannelManifestPair,Boolean)\r\n
    Microsoft.VisualStudio.Setup.ChannelManager.\<UpdateAsync>d__37.MoveNext()\r\n”,
    "Reserved.DataModel.Fault.Exception.Message": " The process cannot access the file 'C:\\Users\\[UserName]\\AppData\\Local\\Microsoft\\VisualStudio\\Packages\\_Channels\\4CB340F5\\channelManifest.json' because it is being used by another process."
    

我們如何使用系統產生的記錄

判斷錯誤根本原因的工作流程會因錯誤類型及其嚴重性而異。

錯誤分類

根據日誌,對錯誤進行分類和計數,以確定調查的優先順序。 例如,我們可能會發現 “System.IO.FileStream.Init” 的 “System.IO.__Error.WinIOError” 在產品的 x< 版>中已發生 500 次,而且該版本的發生率最高。

用於追蹤的工作項目

將為個別錯誤建立工作專案,並根據優先順序指派給工程師進行調查。 這些工作專案通常包含與錯誤類型相關的分類、優先順序和診斷資訊。 此資訊衍生自收集的系統產生的錯誤日誌。 例如,處理崩潰的工作項目可能包含崩潰發生的堆疊追蹤。

錯誤調查

工程師會使用工作專案中可用的資訊來判斷錯誤的根本原因。 在某些情況下,它們需要比工作專案中存在的資訊更多的資訊,在此情況下,它們會參考收集的原始系統產生的記錄。 例如,工程師可能會檢查記憶體傾印,以瞭解產品當機。

擴充元件作者的提示

延伸模組作者應限制個人資訊的暴露,不要在其模組、類型和方法的名稱中使用個人或其他敏感性資訊。 如果堆疊上的該程式碼發生當機或類似的錯誤狀況,則會收集該資訊作為系統產生的日誌的一部分。