写点什么

Microsoft Office 开发工具 Visual Studio 2015

  • 2016-05-04
  • 本文字数:2811 字

    阅读完需:约 9 分钟

针对 Office 开发工具微软推出了 Visual Studio 2015,支持 Clang 编译器和 LLVM 框架,同时可以为 Android 及未来的 iOS 开发应用。Visual Studio 2015 支持 Java、ANT、SQL LITE 和 WebSocket4web,提供原生的 Git 支持。用户可以在新版中尝试创建新的项目类型,下面将重点介绍一下安装步骤和新功能。

安装步骤如下:

  1. 如果还没安装 Visual Studio 2015,立即点击获取 Visual Studio Community 2015 ,完全免费!
  2. 通过 aka.ms/GetLatestOfficeDevTools 获取最新版本的 Office 开发套件。
  3. 请确保您已安装 Outlook 2016

新功能:支持外接应用是重点

Visual Studio 2015 的新功能有很多,除了能够原生地支持在 ECMAScript 2015 中定义的一部分新的语言结构,让 JavaScript 编辑工具利用 Visual Studio 中自带的任务列表,让 JavaScript 编辑更简单之外,Visual Studio 2015 还支持直接生成 Linux 二进制程序。但是,这里将着重介绍 Office 外接应用的功能。

在 Visual Studio 2015 新版中,开发团队已经在 Office 外接应用中添加一个新的项目类型,叫做Outlook Add-in with Commands。外接应用可以在 Outlook 功能区添加按钮,启动外界程序显示菜单或者执行一个自定义的 JavaScript 函数,为用户提供一个无缝的办公室体验。

VersionOverrides 在清单中声明一个命令,忽略旧版本的 Office,从而确保与用户的兼容性。

现在可以创建一个撰写电子邮件时插入自定义文本的外接程序。当报告有关问题时,客户支持人员通常需要询问更多的细节,给出使用说明如何查找版本,序列号等。它会非常方便—节省大量的时间—在 Outlook 中插入这种常见的文本按钮。开发团队还将逐步通过一个示例来创建一个写电子邮件时插入自定义文档的外接程序。

在 Visual Studio 2015 中,通过文件 > 新项目,选择模板 > Office/SharePoint > Outlook Add-in with Commands创建新 Outlook 外接程序命令项目:

若要查看这些按钮,在解决方案管理器中选择 OutlookAddIn 节点,在属性窗口中将启动操作改为办公室桌面客户端,然后启动 Outlook 2016,并按 F5:

正如你所看到的,通过选择显示所有的属性按钮启动外界程序,当用户阅读信息时(在清单中定义MessageRead)出现在功能区。现在当用户在撰写邮件 (MessageCompose 表面) 时在功能区添加一个菜单按钮。

停止调试,然后在解决方案资源管理器上点击OutlookAddInManifest节点,并打开 XML 文件清单。

在标签结束处,向MessageCompose内添加一个添加菜单按钮的ExtensionPoint标签。

ExtensionPointxsi:type=“MessageComposeCommandSurface”
<OfficeTabid=“TabDefault”>
<Groupid=“msgComposeDemoGroup”>
<Labelresid=“groupLabel” />
Controlxsi:type="Menu"id=“msgComposeMenuButton”
<Labelresid=“menuComposeButtonLabel” />

<Titleresid=“menuComposeSuperTipTitle” />
<Descriptionresid=“menuComposeSuperTipDescription” />


<bt:Imagesize="16"resid=“icon16” />
<bt:Imagesize="32"resid=“icon32” />
<bt:Imagesize="80"resid=“icon80” />


<Itemid=“msgComposeMenuItem1”>
<Labelresid=“menuItem1ComposeLabel” />

<Titleresid=“menuItem1ComposeLabel” />
<Descriptionresid="menuItem1ComposeTip
" />


<bt:Imagesize="16"resid=“icon16” />
<bt:Imagesize="32"resid=“icon32” />
<bt:Imagesize="80"resid=“icon80” />

Actionxsi:type=“ExecuteFunction”
addMsg1ToBody


<Itemid=“msgComposeMenuItem2”>
<Labelresid=“menuItem2ComposeLabel” />

<Titleresid=“menuItem2ComposeLabel” />
<Descriptionresid="menuItem2ComposeTip
" />


<bt:Imagesize="16"resid=“icon16” />
<bt:Imagesize="32"resid=“icon32” />
<bt:Imagesize="80"resid=“icon80” />

Actionxsi:type=“ExecuteFunction”
addMsg2ToBody








在清单末尾的Resources节点处,用下面的代码替换 ShortStrings 和 LongStrings 的节点

bt:ShortStrings
<bt:Stringid="groupLabel"DefaultValue=“My Add-in Group”/>
<bt:Stringid="paneReadButtonLabel"DefaultValue=“Display all properties”/>
<bt:Stringid="paneReadSuperTipTitle"DefaultValue=“Get all properties”/>
<bt:Stringid="menuComposeButtonLabel"DefaultValue=“Insert message”/>
<bt:Stringid="menuComposeSuperTipTitle"DefaultValue=“Choose a message to insert”/>
<bt:Stringid="menuItem1ComposeLabel"DefaultValue=“Insert custom message #1”/>
<bt:Stringid="menuItem2ComposeLabel"DefaultValue=“Insert custom message #2”/>
</bt:ShortStrings>
bt:LongStrings
<bt:Stringid="paneReadSuperTipDescription"DefaultValue=“Opens a pane displaying all available properties. This is an example of a button that opens a task pane.”/>
<bt:Stringid="menuComposeButtonTooltip"DefaultValue=“Inserts your choice of text into body of the message.”/>
<bt:Stringid=“menuComposeSuperTipDescription"DefaultValue=“Inserts your choice of text into body of the message. This is an example of a drop-down menu button.”/>
<bt:Stringid=“menuItem1ComposeTip"DefaultValue=“Inserts custom message #1 into the body of the email.” />
<bt:Stringid=“menuItem2ComposeTip"DefaultValue=“Inserts custom message #2 into the body of the email.” />
</bt:LongStrings>

最后,在 functions/functions.js 的结尾处添加一些自定义的 JavaScript 函数:

// Adds text into the body of the item, then reports the results to the info bar.
function addTextToBody(text, icon, event) {
Office.context.mailbox.item.body.setSelectedDataAsync(text,
{ coercionType: Office.CoercionType.Text },
function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Succeeded) {
statusUpdate(icon, “\”” + text + “\” inserted successfully.”);
} else {
Office.context.mailbox.item.notificationMessages.addAsync(“addTextError”, {
type: “errorMessage”,
message: “Failed to insert \”” + text + “\”: "
+ asyncResult.error.message
});
}
event.completed();
});
}
function addMsg1ToBody(event) {
addTextToBody(“Custom message #1”, “icon16”, event);
}
function addMsg2ToBody(event) {
addTextToBody(“Custom message #2”, “icon16”, event);
}

现在运行外接程序查看新菜单。因为我们将菜单添加到MessageCompose上,你需要点击 Outlook 2016 左上角的创建新邮件图标创建一封新邮件。

就是这个!您已成功添加外界命令程序。如果想学习更多并深入探究如何将命令添加到 Office Add-in 可以查阅 Overview of add-in commands for mail Create a manifest for add-in commands

2016-05-04 01:312785

评论

发布
暂无评论
发现更多内容

克服差异:出海企业产品推广迈出第一步的关键考虑因素

出海的猹

营销 产品增长 用户 运营 出海企业

一文读懂GPU虚拟化、显卡直通和GPU云桌面

青椒云云电脑

桌面云 云桌面

恭喜!龙蜥获得 2023 大学生操作系统设计赛二等奖及特殊贡献奖

OpenAnolis小助手

开源 操作系统 龙蜥社区 获奖 全国大学生系统能力大赛

快速加入Health Kit,一文了解审核流程

HarmonyOS SDK

huawei HarmonyOS

iPhone15系列发布,正式宣布对AV1的硬解支持

微帧Visionular

视频编解码

云电脑到底是不是自己的电脑?

青椒云云电脑

云电脑

软件测试/测试开发丨venv 环境管理 学习笔记

测试人

软件测试 虚拟环境 venv

打造次世代分析型数据库(三):列存表最佳实践

腾讯云大数据

数据库

GPU云还是传统图形工作站?测绘单位的探索和创新

青椒云云电脑

图形工作站

最高提升10倍性能!揭秘火山引擎ByteHouse查询优化器实现方案

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号9月PK榜

Serverless 数仓技术与挑战 - 张雁飞|3306π

Databend

极狐GitLab CI x Vault,做好企业密钥安全合规管理

极狐GitLab

gitlab cicd 安全 cli vault

关于TPM营销费用管理,品牌快消企业最关心的问题都在这里

赛博威科技

营销数字化 投资分析 数字营销 营销管理 预算管理信息化

平台工程实践,让应用开发如搭积木一般简单

北京好雨科技有限公司

Kubernetes DevOps 平台工程

电脑宕机耽误工作?云桌面办公上云更高效

青椒云云电脑

云桌面

Apache IoTDB 毕业三周年!纪念T恤+表情包免费来袭~

Apache IoTDB

度小满CTO许冬亮:大模型时代需警惕中小金融机构“技术掉队”

科技热闻

如何使用极狐GitLab 支持 ISO 27001 合规

极狐GitLab

DevOps gitlab ISO 组织控制 技术控制

抖音开放平台上线新能力!延伸内容价值助力开发者高效获客

科技热闻

如何构建现代化数据平台?私有云五大方面赋能企业用户

青椒云云电脑

云平台 云平台技术

GPU云桌面如何赋能3D图形制作场景

青椒云云电脑

桌面云 云桌面

精打细算:出海企业如何选择低成本高效率的产品推广渠道

出海的猹

营销 出海社交 产品增长 出海企业

和鲸科技:国家气象信息中心人工智能气象应用基础支撑技术平台正式上线

ModelWhale

人工智能 AI 气象 地球科学 国家气象中心

打造高能低碳电脑,英特尔与合作伙伴都做了什么?

E科讯

一文读懂GPU直通技术

青椒云云电脑

gpu

XR扩展现实的最新趋势-云流化技术

3DCAT实时渲染

云流化 CLOUDXR

企业如何高效平滑迁移数据?火山引擎DataLeap上线整库搬迁解决方案

字节跳动数据平台

数据中台 数据治理 数据安全 数据研发 企业号9月PK榜

出海第一步,先选云服务

出海的猹

出海服务商 海外市场 出海企业 云服务商

技术科普:汽车开放系统架构AUTOSAR

DevOps和数字孪生

汽车 AUTOSAR

【Java入门】交换数组中两个元素的位置

飞算JavaAI开发助手

代码 java; 程序员‘’ 软件开发、

Microsoft Office开发工具 Visual Studio 2015_微软_Visual Studio中文博客_InfoQ精选文章