部署解决方案时尝试在主页选项卡中显示自定义组 Outlook VSTO 加载项

Trying to show custom group in Home tab Outlook VSTO Add-in when deploying solution

我正在编写一个 VSTO Outlook 加载项,在我正在开发的机器中,我可以添加一个 custom ribbon group to the home tab but when I deploy the add-in through a VS installer, the home tab group does not show。我已经将 controlID 设置为 TabMail 并且我检查了以前的答案无济于事。使用 Visual Studio 2015 和 Outlook 2013。

以下是此功能区的自动生成的设计器 class 定义:

Partial Class Ribbon3
Inherits Microsoft.Office.Tools.Ribbon.RibbonBase

<System.Diagnostics.DebuggerNonUserCode()> _
Public Sub New(ByVal container As System.ComponentModel.IContainer)
    MyClass.New()
    InitializeComponent()
    'Required for Windows.Forms Class Composition Designer support
    If (container IsNot Nothing) Then
        container.Add(Me)
    End If

End Sub

<System.Diagnostics.DebuggerNonUserCode()> _
Public Sub New()
    MyBase.New(Globals.Factory.GetRibbonFactory())

    'This call is required by the Component Designer.
    InitializeComponent()

End Sub

'Component overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    Try
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
    Finally
        MyBase.Dispose(disposing)
    End Try
End Sub

'Required by the Component Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Component Designer
'It can be modified using the Component Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
    Dim RibbonDialogLauncherImpl1 As Microsoft.Office.Tools.Ribbon.RibbonDialogLauncher = Me.Factory.CreateRibbonDialogLauncher
    Me.Tab1 = Me.Factory.CreateRibbonTab
    Me.EIP = Me.Factory.CreateRibbonGroup
    Me.Button1 = Me.Factory.CreateRibbonButton
    Me.Button3 = Me.Factory.CreateRibbonButton
    Me.Button2 = Me.Factory.CreateRibbonButton
    Me.Label1 = Me.Factory.CreateRibbonLabel
    Me.EditBox1 = Me.Factory.CreateRibbonEditBox
    Me.Button4 = Me.Factory.CreateRibbonButton
    Me.Tab1.SuspendLayout()
    Me.EIP.SuspendLayout()
    Me.SuspendLayout()
    '
    'Tab1
    '
    Me.Tab1.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
    Me.Tab1.ControlId.OfficeId = "TabMail"
    Me.Tab1.Groups.Add(Me.EIP)
    Me.Tab1.Label = "TabMail"
    Me.Tab1.Name = "Tab1"
    '
    'EIP
    '
    Me.EIP.DialogLauncher = RibbonDialogLauncherImpl1
    Me.EIP.Items.Add(Me.Button1)
    Me.EIP.Items.Add(Me.Button3)
    Me.EIP.Items.Add(Me.Button2)
    Me.EIP.Items.Add(Me.Label1)
    Me.EIP.Items.Add(Me.EditBox1)
    Me.EIP.Items.Add(Me.Button4)
    Me.EIP.KeyTip = "O"
    Me.EIP.Label = "EIP"
    Me.EIP.Name = "EIP"
    Me.EIP.Position = Me.Factory.RibbonPosition.AfterOfficeId("Find")
    '
    'Button1
    '
    Me.Button1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge
    Me.Button1.Label = "Archive to EIP"
    Me.Button1.Name = "Button1"
    Me.Button1.OfficeImageId = "FileOpenRecentFile"
    Me.Button1.ShowImage = True
    '
    'Button3
    '
    Me.Button3.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge
    Me.Button3.Label = "Update EIP List"
    Me.Button3.Name = "Button3"
    Me.Button3.OfficeImageId = "ChangeFolderDownloadSettings"
    Me.Button3.ScreenTip = "Rebuild the internal list matching EIP numbers to EIP directories"
    Me.Button3.ShowImage = True
    '
    'Button2
    '
    Me.Button2.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge
    Me.Button2.Label = "Open EIP Folder"
    Me.Button2.Name = "Button2"
    Me.Button2.OfficeImageId = "AlwaysMoveToFolder"
    Me.Button2.ShowImage = True
    '
    'Label1
    '
    Me.Label1.Label = "Active EIP"
    Me.Label1.Name = "Label1"
    '
    'EditBox1
    '
    Me.EditBox1.Label = "Active EIP"
    Me.EditBox1.Name = "EditBox1"
    Me.EditBox1.ScreenTip = "EIP number to associate with message if none found"
    Me.EditBox1.ShowLabel = False
    Me.EditBox1.Text = Nothing
    '
    'Button4
    '
    Me.Button4.Label = "Clear"
    Me.Button4.Name = "Button4"
    Me.Button4.OfficeImageId = "Clear"
    Me.Button4.ShowImage = True
    '
    'Ribbon3
    '
    Me.Name = "Ribbon3"
    Me.RibbonType = "Microsoft.Outlook.Explorer"
    Me.Tabs.Add(Me.Tab1)
    Me.Tab1.ResumeLayout(False)
    Me.Tab1.PerformLayout()
    Me.EIP.ResumeLayout(False)
    Me.EIP.PerformLayout()
    Me.ResumeLayout(False)

End Sub
Friend WithEvents EIP As Microsoft.Office.Tools.Ribbon.RibbonGroup
Friend WithEvents Button1 As Microsoft.Office.Tools.Ribbon.RibbonButton
Friend WithEvents Button3 As Microsoft.Office.Tools.Ribbon.RibbonButton
Friend WithEvents Tab1 As Microsoft.Office.Tools.Ribbon.RibbonTab
Friend WithEvents Button2 As Microsoft.Office.Tools.Ribbon.RibbonButton
Friend WithEvents EditBox1 As Microsoft.Office.Tools.Ribbon.RibbonEditBox
Friend WithEvents Label1 As Microsoft.Office.Tools.Ribbon.RibbonLabel
Friend WithEvents Button4 As Microsoft.Office.Tools.Ribbon.RibbonButton
End Class

如果功能区组使用的任何控件未安装在主机上,则功能区组将不会显示。我必须将 vsto 运行时设置为先决条件,然后一切正常。 Select the installer project, then after selecting prerequisites in the properties window, select the vsto runtime as a prerequisite.