2013-06-26 51 views
3

我是Visual Studio Extensibility的新手,我尝试从VS 2012 SDK(Displaying Statement Complete)实施Microsoft Walkthrough之一。我在演练中遇到了一些困难。问题是我得到一个错误,SVsServiceProvider未定义。我已经输入Microsoft.VisualStudio.Shell在VS 2012中导入SvsServiceProvider

Imports System 
Imports System.Collections.Generic 
Imports System.Linq 
Imports System.Text 
Imports System.ComponentModel.Composition 
Imports System.Runtime.InteropServices 
Imports Microsoft.VisualStudio 
Imports Microsoft.VisualStudio.Editor 
Imports Microsoft.VisualStudio.Language.Intellisense 
Imports Microsoft.VisualStudio.OLE.Interop 
Imports Microsoft.VisualStudio.Shell 
Imports Microsoft.VisualStudio.Text 
Imports Microsoft.VisualStudio.Text.Editor 
Imports Microsoft.VisualStudio.TextManager.Interop 
Imports Microsoft.VisualStudio.Utilities 


<Export(GetType(IVsTextViewCreationListener))> 
<Name("token completion handler")> 
<ContentType("plaintext")> <TextViewRole(PredefinedTextViewRoles.Editable)> 
Friend Class TestCompletionHandlerProvider 
Implements IVsTextViewCreationListener 

<Import()> 
Friend AdapterService As IVsEditorAdaptersFactoryService = Nothing 
<Import()> 
Friend Property CompletionBroker() As ICompletionBroker 
<Import()> 
Friend Property ServiceProvider() As SVsServiceProvider 

Public Sub VsTextViewCreated(ByVal textViewAdapter As IVsTextView) Implements IVsTextViewCreationListener.VsTextViewCreated 
    Dim textView As ITextView = AdapterService.GetWpfTextView(textViewAdapter) 
    If textView Is Nothing Then 
     Return 
    End If 

    Dim createCommandHandler As Func(Of TestCompletionCommandHandler) = Function() New TestCompletionCommandHandler(textViewAdapter, textView, Me) 
    textView.Properties.GetOrCreateSingletonProperty(createCommandHandler) 
End Sub 
+0

您是否添加了对Microsoft.VisualStudio.Shell.Immutable.10.0.dll的引用? –

+1

Microsoft.VisualStudio.Shell.Immutable.10.0.dll是答案。我使用的是Microsoft.VisualStudio.Shell.Immutable.11.0。谢谢西蒙 – Paul

回答

1

张贴由西蒙在原来问题的意见,补充提及:

Microsoft.VisualStudio.Shell.Immutable.10.0.dll 

如果您正在使用Microsoft.VisualStudio.Shell.Immutable.11.0.dll那么你会遇到一个空SvsServiceProvider