AutoShowTaskpaneWithDocument Word加载项-我们找不到要打开的任务窗格

问题描述

我的问题可能在以下问题中得到最好的描述: samples 但是,给出的答案对我不起作用。我在一家公司工作,但不能选择安装新的PC。

我写了一个Office(Word)加载项(Office API / JS),当用户打开我网站上列出的文档之一时,我希望它自动打开。当用户选择要下载的文档时,我先在Web服务器上打开该文档,然后再下载它,并使用OpenXML在文档中添加一些额外的OpenXML部件以使其打开加载项。这是代码

//params: 
// wordDoc - the WordProcessing object being updated
//_WebExtensionStoreReferenceId = GUID of Add-In (the <Id> tag in Add-In manifest)
//_WebExtensionStoreReferenceVersion = "1.0.0.1" - matches version in manifest
//_WebExtensionStoreReferenceStore = path to manifest file
//_WebExtensionStoreReferenceStoreType = "FileSystem"
public static void AddWebExTaskpanesPart(WordprocessingDocument wordDoc,string _WebExtensionStoreReferenceId,string _WebExtensionStoreReferenceVersion,string _WebExtensionStoreReferenceStore,string _WebExtensionStoreReferenceStoreType)
{
    wordDoc.DeletePartsRecursivelyOfType<WebExTaskpanesPart>();
    wordDoc.DeletePartsRecursivelyOfType<WebExtensionPart>();
        
    WebExTaskpanesPart webExTaskpanesPart = wordDoc.AddWebExTaskpanesPart();
    WebExtensionPart webExtensionPart = webExTaskpanesPart.AddNewPart<WebExtensionPart>("rId1");
        
    We.WebExtension webExtension = new We.WebExtension() { Id = _WebExtensionStoreReferenceId };
    webExtension.AddNamespaceDeclaration("we","http://schemas.microsoft.com/office/webextensions/webextension/2010/11");
        
    We.WebExtensionStoreReference webExtensionStoreReference = new We.WebExtensionStoreReference()
    {
        Id = _WebExtensionStoreReferenceId,Version = _WebExtensionStoreReferenceVersion,Store = _WebExtensionStoreReferenceStore,StoreType = _WebExtensionStoreReferenceStoreType
    };
        
    We.WebExtensionReferenceList webExtensionReferenceList = new We.WebExtensionReferenceList();
    We.WebExtensionpropertybag webExtensionpropertybag = new We.WebExtensionpropertybag();
    We.WebExtensionProperty webExtensionProperty = new We.WebExtensionproperty() { Name = "Office.AutoShowTaskpaneWithDocument",Value = "true" };
    webExtensionpropertybag.Append(webExtensionProperty);
        
    We.WebExtensionBindingList webExtensionBindingList = new We.WebExtensionBindingList();
        
    We.Snapshot snapshot = new We.Snapshot();
    snapshot.AddNamespaceDeclaration("r","http://schemas.openxmlformats.org/officeDocument/2006/relationships");
        
    webExtension.Append(webExtensionStoreReference);
    webExtension.Append(webExtensionReferenceList);
    webExtension.Append(webExtensionpropertybag);
    webExtension.Append(webExtensionBindingList);
    webExtension.Append(snapshot);
        
    webExtensionPart.WebExtension = webExtension;
        
    //TaskPane
        
    Wetp.Taskpanes taskpanes = new Wetp.Taskpanes();
    taskpanes.AddNamespaceDeclaration("wetp","http://schemas.microsoft.com/office/webextensions/taskpanes/2010/11");
        
    Wetp.WebExtensionTaskpane webExtensionTaskpane = new Wetp.WebExtensionTaskpane()
    {
        DockState = "left",Visibility = true,Width = 320D,Row = 0U,Locked = false
    };
        
    Wetp.WebExtensionPartReference webExtensionPartReference = new Wetp.WebExtensionPartReference() { Id = "rId1" };
    webExtensionPartReference.AddNamespaceDeclaration("r","http://schemas.openxmlformats.org/officeDocument/2006/relationships");
        
    webExtensionTaskpane.Append(webExtensionPartReference);
    taskpanes.Append(webExtensionTaskpane);
    webExTaskpanesPart.Taskpanes = taskpanes;
        
}

我设置了一个文件夹来提供引用的加载项,并且在开发环境中运行它似乎可以正常工作。当我在我的质量检查环境中运行相同的代码(当然是不同的域和某些设置)时,似乎找到了加载项清单,因为它在Word中启动了TaskPane,但是它显示“我们找不到任务窗格打开。请与外接程序开发人员联系以寻求帮助。”加载项本身似乎可以正常运行,因为当我将其添加功能区并单击按钮时,该加载项运行良好,甚至可以与Word文档一起使用。

我比较了在dev和QA环境中下载的两个Word文档,除了加载项清单的位置外,它们几乎相同。我使用Microsoft Office的Open XML SDK生产率工具进行了比较(顺便说一下,这是一个很棒的工具)。

我在质量检查域上没有管理员权限,因此无法在其中运行任何调试工具。有人有什么想法吗?

解决方法

您是否还在清单文件的“操作”部分中将名称“Office.AutoShowTaskpaneWithDocument”作为 TaskPaneId ?

<Action xsi:type="ShowTaskpane">
  <TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId>
  <SourceLocation resid="Contoso.Taskpane.Url" />
</Action>