У меня проблемы с поведением загрузки надстройки ленты Excel, разработанной как решение VSTO.Надстройка служит в качестве элемента управления ленты VSTO в Excel, который имеет несколько вкладок, видимость каждой вкладки по умолчанию установлена на false и становится видимой экземпляром надстройки рабочей книги.
По неясным для меня причинам, разрешающимустановка ClickOnce для установки LoadBehavior на 16 (затем на последующие 9) проблематична.Исходное значение 16 правильно загрузит вкладку ленты книги, но после закрытия и повторного открытия этой книги вкладка ленты не отображается.
Однако, если другая книга открыта с той же надстройкой, обе вкладки появляются в каждой из книг.
LoadBehavior «0» работает так, как задумано, и является причинойза размещенный вопрос.
Вот код VBA для создания экземпляра надстройки.
'This loads the Ribbon Addin
Private Function LoadAddIn() As Boolean
On Error GoTo Err_LoadAddIn
Dim msg As String
Dim m_addIn As COMAddIn
Dim m_automationObject As Object
Dim m_sWorkbookKey As String
msg = "Unable to load the PITA AddIn, please contact PITA support"
'Load the Excel Addin
Set m_addIn = Application.COMAddIns("PITA Ribbon")
'Connect the COM Add-In to the current workbook
m_addIn.Connect = True
'Set a reference to the utility class that the COM Add-In references
m_automationObject = m_addIn.Object
'If it is nothing then the Add-In is in a bad state
If m_automationObject Is Nothing Then
msg = "Error loading the PITA AddIn, please contact PITA support"
GoTo Err_LoadAddIn
Else
'Set the service type of the Add-In (currently only SQLServer)
m_automationObject.SetDataConnection "SQLServer"
'Set the workbook key - this is the name of the analyzer
m_sWorkbookKey = Worksheets("SheetX").Range("A10")
'Set the ribbon tab's visibility relative to the current workbook
m_automationObject.SetTabVisibility m_sWorkbookKey, True
'If the connection to the datasource is successful
'Populate the Tab's List Controls with the values from SQL Server
If m_automationObject.Connected = True Then
m_automationObject.SetTabDefaults m_sWorkbookKey
End If
End If
LoadAddIn = True
Exit Function
Err_LoadAddIn:
MsgBox msg, vbCritical, "AddIn load error"
LoadAddIn = False
End Function
Я попытался изменить файл манифеста VSTO в разделе настройки ниже на «0», но установщик ClickOnce выдает ошибку, когдапопытка установки с этой модификацией.
<vstov4:customization>
<vstov4:appAddIn application="Excel" loadBehavior="0" keyName="PITA Ribbon">
<vstov4:friendlyName>PITA Ribbon</vstov4:friendlyName>
<vstov4:description>PITA Ribbon</vstov4:description>
<vstov4.1:ribbonTypes xmlns:vstov4.1="urn:schemas-microsoft-com:vsto.v4.1">
<vstov4.1:ribbonType name="PITAAddIn.PITARibbon, PITA Ribbon, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</vstov4.1:ribbonTypes>
</vstov4:appAddIn>
</vstov4:customization>
Есть ли способ, чтобы установка ClickOnce установила поведение загрузки по умолчанию на "0"?
Любое руководство о том, как это сделать, оченьоценили!