我的包裹没有加载。我如何解释 activity 日志

My package did not load. How can I interpret the activity log

我的 VSPackage 没有为一个用户正确加载到 Visual Studio 2019。

用户向我发送了部分 activity 日志:

<entry>
  <record>2206</record>
  <time>2019/12/13 10:44:12.579</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Begin package load [MultiLanguagePackage]</description>
  <guid>{8FA8895A-868F-4319-82FD-A4805D8953CE}</guid>
</entry>

<entry>
  <record>2207</record>
  <time>2019/12/13 10:44:12.616</time>
  <type>Error</type>
  <source>VisualStudio</source>

  <description>SetSite failed for package [MultiLanguagePackage]
  Source: 'Microsoft.VisualStudio.Shell.15.0'; 
  Description: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
  System.NullReferenceException: 
  Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.   
  bei Microsoft.VisualStudio.Shell.DialogPage.SetPropertyValue(PropertyDescriptor descriptor, Object automationObject, Object value)   
  bei Microsoft.VisualStudio.Shell.DialogPage.LoadSettingFromStorage(PropertyDescriptor prop)   
  bei Microsoft.VisualStudio.Shell.DialogPage.LoadSettingsFromStorage()   
  bei Microsoft.VisualStudio.Shell.DialogPage.set_Site(ISite value)   
  bei System.ComponentModel.Container.Add(IComponent component, String name)   
  bei System.ComponentModel.Container.Add(IComponent component)   
  bei Microsoft.VisualStudio.Shell.Package.GetDialogPage(Type dialogPageType)   
  bei MultiLangServices.SettingsService.InitOptionsPages(Package p) in C:\VSPackage_Version_7_1\Project\MultiLangServices\Services\SettingsService.cs:Zeile 24.   
  bei MultiLanguage2019.MultiLanguagePackage.&lt;InitializeAsync&gt;d__2.MoveNext()
  --- Ende der Stapel&#x00FC;berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel&#x00F6;st wurde ---   
  bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)   
  bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   
  bei Microsoft.VisualStudio.Shell.AsyncPackage.&lt;&gt;c__DisplayClass20_0.&lt;&lt;Microsoft-VisualStudio-Shell-Interop-IAsyncLoadablePackageInitialize-Initialize&gt;b__1&gt;d.MoveNext()
  --- Ende der Stapel&#x00FC;berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel&#x00F6;st wurde ---   
  bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)   
  bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   
  bei Microsoft.VisualStudio.Shell.UIThreadReentrancyScope.WaitOnTaskCompleteInternal(Task task, CancellationToken cancel, Int32 ms)   
  bei Microsoft.VisualStudio.Services.VsTask.&lt;&gt;c__DisplayClass100_1.&lt;InternalGetResult&gt;b__1()   
  bei Microsoft.VisualStudio.Services.VsTask.IgnoreObjectDisposedException(Action action)   
  bei Microsoft.VisualStudio.Services.VsTask.&lt;&gt;c__DisplayClass100_0.&lt;InternalGetResult&gt;b__0()   
  bei Microsoft.VisualStudio.Services.VsTask.&lt;&gt;c__DisplayClass108_0.&lt;InvokeWithWaitDialog&gt;b__0()   
  bei Microsoft.VisualStudio.Services.VsTask.InvokeWithWaitDialog[T](Func`1 function)   
  bei Microsoft.VisualStudio.Services.VsTask.InvokeWithWaitDialog(Action action)   
  bei Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck)   
  bei Microsoft.VisualStudio.Services.VsTask.GetResult()</description>

  <guid>{8FA8895A-868F-4319-82FD-A4805D8953CE}</guid>
  <hr>80004003 - E_POINTER</hr>
  <errorinfo></errorinfo>
</entry>

<entry>
  <record>2208</record>
  <time>2019/12/13 10:44:12.618</time>
  <type>Error</type>
  <source>VisualStudio</source>
  <description>End package load [MultiLanguagePackage]</description>
  <guid>{8FA8895A-868F-4319-82FD-A4805D8953CE}</guid>
  <hr>80004003 - E_POINTER</hr>
  <errorinfo></errorinfo>
</entry>

我该如何解读这些信息?
它是否包含指向错误原因的有用指针?

我的程序包包含对 NuGet 程序包 Micorosft.VisualStudio.SDK 版本 16.0.202 的引用。

它不包含对 Microsoft.VisualStudio.Shell.15.0

的具体引用

我假设 MultiLanguageService class 属于您的包实现 - 它正在做一些导致 NullReferenceException 的事情。这样的错误应该很容易定位;堆栈跟踪告诉您 MultiLangServices.SettingsService.InitOptionsPages(Package p) in ...SettingsService.cs:Zeile 24 中出现了问题。只需在第 24 行放置一个断点并验证一切是否按预期运行。

我认为它与您引用的某个 SDK 包或程序集无关。如果代码适用于大多数用户,那么代码中一定有某些东西在某些情况下可能会失败;例如,如果缺少配置值,则会导致报告的 NullReferenceException 异常。我会检查实现并至少添加一个适当的异常处理程序,以便下次向 activity-log.

报告更精确的错误