我为自定义模板开发了VSTO 4.0文档自定义,它可以正常工作并使用ClickOnce安装。
但是,我的要求之一是生成的文档,即生成的.docx文件,与组织外部的用户共享,我不希望VSTO提示他们安装自定义。< / p>
外部用户应该能够在没有任何VSTO提示的情况下打开文档,并将其视为通常的Word文档,当文档由外部用户保存并发回时,我可以打开文档和VSTO自定义将按预期工作。
这是一个可用性场景,其中文档需要由我的组织和外部组织进行协作,但我不能指望外部组织安装VSTO自定义。他们通常只会插入文字,图片和添加评论评论。
有什么方法可以实现这种情况吗?
BTW,在此阶段使用Web Addin for Office 365不是一个可行的选择,因为使用Word Javascript API无法实现某些自定义要求。答案 0 :(得分:1)
您需要先从VSTO文档中删除该链接,然后再将其提供给外部人员。当文档返回时,您可以将自定义链接回来。
关于该主题的整个MSDN article以及blog article。
简而言之,有两种方法可以完成:从打开的文档中或封闭的文档中。
运行Document.RemoveCustomization
方法,例如,可以将其分配给功能区自定义中的按钮。这会将存储在自定义文档属性中的链接移除到VSTO代码(这是文档本身在打开时查找代码的方式)以及任何缓存数据。
使用ServerDocument.RemoveCustomization
方法,基本上做同样的事情。
ServerDocument.RemoveCustomization(documentPath);
重新附加只能通过ServerDocument.AddCustomization
进行,逻辑上足够。
string deployManifestPath = System.Environment.GetFolderPath(
Environment.SpecialFolder.Desktop)
+ @"\Publish\WordDocument1.vsto";
Uri deploymentManifestUri = new Uri(deployManifestPath);
ServerDocument.AddCustomization(documentPath, deploymentManifestUri);