2013-06-26 107 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