VS2017 不能创建 vsto Excel 工作簿程序的问题
最近想写个小程序,是基于vsto的excel 扩展程序。
打开vs2017,创建时,却提示 不能创建项目(创建项目失败,Project cannot be created)。原本以为很顺利的,不相处了这个bug。
我是安装的vs2017社区版,office 是前几个月公司购买的 office 2016 标准版。百度了,有几下几个方面,但都不是我的原因(我也列下来,也许能解决你的问题)
1,vs要用管理员权限打开
2,office 加载项要正常没有异常,信任中心也要吧两个选项去掉:

3,注册表 的 hkey-class-root/.xlsx 的默认键值要改成 Excel.Sheet.12
但是这都不是我的问题,也就是我的以上都没有问题。
查系统日志,为看到以下的错误:
错误应用程序名称: EXCEL.EXE,版本: 16.0.4510.1000,时间戳: 0x58a36f28
错误模块名称: VSTOExcelAdaptor.dll,版本: 15.0.26112.1,时间戳: 0x5878595f
异常代码: 0xc0000005
错误偏移量: 0x000278a7
错误进程 ID: 0x38b4
错误应用程序启动时间: 0x01d2e9030814b9b1
错误应用程序路径: C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE
错误模块路径: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\x86\VSTOExcelAdaptor.dll
报告 ID: 375cfa47-b318-4ef6-bf34-9d95cf5c1492
错误程序包全名:
错误程序包相对应用程序 ID:
基本怀疑是加载项执行失败,但是具体什么原因还是摸不着头脑。FQ出去谷歌,查到了n多帖子。也有好多老外在为这个事情头痛。终于找到一个帖子,微软的:
https://support.microsoft.com/en-us/help/4014433/project-cannot-be-created-or-excel-designer-cannot-be-activated-error-
提到一个可能的原因:There was an update to VBA that broke compatibility in VSTO Document-level scenarios. You will encounter this problem if you are using that version of VBA. To determine whether this is the cause of your problem, check the version of VBE7.dll to see whether it is 7.01.1056 (the full path is specified in the "More Information" section).
说人话就是,office的一个对 vba 的更新导致了对vsto文档级别的项目的不兼容。如果你的vbe7.dll的版本是 7.01.1056 的话,基本上就会存在这个问题,要找 7.01.1060 和以上的版本才可以。
我看了看我的,正好是这个版本,悲剧了。
微软发现这个问题后,给出了补丁,但是不像话的是,微软只给采用 click-to-run方式安装的office给了补丁(office365就是这种方式),但是对传统.msi方式安装的office则没有发补丁(正好我的就是这种方式),可恶的M$。
微软给出了两种方案:
1,找台使用office365的机器,更新到最新版本,用它的vbe7.dll替换掉你的这个文件
2,恢复到老的office版本。
对后一种方式代价太大了,我打算采取第一种看似比较廉价的方案。
1,网上搜这个dll,找不到符合要求的版本号。
2,求助同事。无所不能的群终于发出了威力,一个同事正好自己的个人机器上安装了 office 365 home/education edtion,他的vbe7.dll是 7.1.1068。

传过来覆盖过去,创建项目,成功!
VS2017 不能创建 vsto Excel 工作簿程序的问题的更多相关文章
- 使用SPIRE.XLS来创建Excel 工作簿
使用SPIRE.XLS来创建Excel 工作簿 概要 最近在研究 .NET 控件,使用这些控件在程序中可以快速低成本实现功能. 在这一篇中我们使用的控件是Spire.XL ...
- 合并多个excel工作簿
合并多个Excel工作簿,会出现电话号码以科学计数法显示,如果想要以字符串方式处理,要按如下完整代码 public static void mergeWorkBook() throws Excepti ...
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
本文分步介绍了多种从 Microsoft Visual C# 2005 或 Microsoft Visual C# .NET 程序向 Microsoft Excel 2002 传输数据的方法.本文还提 ...
- vs2016 创建 vsto excel 文件项目的一个问题
新工作需要些一个基于Excel开发一个工具,vs的 vsto 功能很好用,封装了基于开发office 开的一些工具.但是在实际使用时,创建项目总是报错,提示打开excel文件失败.项目是需要创建一个e ...
- 把Excel工作簿的每个工作表提取出来保存为新工作簿
平台:MS office 2010 任务:有个excel工作簿,其中有上百个工作表,要求把每一个工作表全部保存为新工作簿,如果一个一个复制出来太傻了,可以用excel自带的VB解决. 方法:打开工作簿 ...
- [办公自动化]excel工作簿内的表无法删除,单击右键无删除键
今天同事问,我自己的工作簿,没有设置保护,但是就是无法删除其中的工作表. 后来发现,她的excel工作簿打开的文件名后面显示[共享]. 原因找到了. 取消共享就可以了.
- 怎么拆分一个Excel工作簿中的多个工作表?
打开需要编辑的Excel文档.如图所示,工作簿下方有很多工作表.现在需要将这些工作表单独拆分开成一个个工作簿. 右键任意一个工作表标签,在弹出的下拉列表中选择查看代码.即弹出代码窗口.如下图所示. ...
- 等Excel工作簿关闭后自动加密压缩备份
;; 等Excel工作簿关闭后自动加密压缩备份.ahk;; 腾讯QQ号 595076941; 作者:boai; 写作日期:2019年5月15日; 版本号:第1版; 手机号(中国移动) 138##### ...
- 等Excel工作簿关闭后自动加密压缩备份2019年10月9日.ahk
;; 等Excel工作簿关闭后自动加密压缩备份2019年10月9日.ahk;; 腾讯QQ号 595076941; 作者:徐晓亮(weiyunwps618); 写作日期:2019年5月15日; 版本号: ...
随机推荐
- Intellij IDEA创建的Web项目配置Tomcat并启动Maven项目(转)
大部分是直接上图哦. 点击如图所示的地方,进行添加Tomcat配置页面 弹出页面后,按照如图顺序找到,点击+号 tomcat Service -> Local 注意,这里不要选错了哦,还有一个T ...
- Hibernate连接池设置
在公司第一次做项目放到服务器上测试,发现每隔一段时间不用数据库就连接不上了(以前学过连接池,很久没用就忘了),在myeclipse上的时候没发现,网上搜索才发现是hibernate连接池配置问题. 1 ...
- Yii 框架 URL路径简化
Yii 框架的訪问地址若不简化会让人认为非常繁琐.未简化的地址一般格式例如以下: http://localhost:80/test/index.php?r=xxx/xxx/xxx 若是带有參数会更复杂 ...
- 【linux】crontab的环境变量问题
今天遇到一个奇怪的问题,同样一个脚本,手动执行没问题,加入到crontab中,就出现无法运行的情况,第一反应是环境变量问题 环境说明: 操作系统:centos 用户:test用户通过sudo su切换 ...
- ubuntu 搭建 tomcat
一.下载tomcat 先下载到本地,然后ftp上传到服务器 官方 Apache Tomcat 的下载 2 二.解压安装 先解压 tar zxvf apache-tomcat-7.0.64.tar.gz ...
- 基于springboot的RestTemplate、okhttp和HttpClient对比
1.HttpClient:代码复杂,还得操心资源回收等.代码很复杂,冗余代码多,不建议直接使用. 2.RestTemplate: 是 Spring 提供的用于访问Rest服务的客户端, RestTem ...
- Android4.4 GPS框架分析【转】
本文转载自:http://blog.csdn.net/junzhang1122/article/details/46674569 GPS HAL层代码在目录trunk/Android/hardware ...
- 世界各国Google网址大全
http://www.oschina.net/question/100896_50293 冰岛 https://www.google.is/ 丹麦 https://www.google.dk/ 挪威 ...
- static语句块的执行时间
package utfTest; public class Test01 { public static void main(String[] args) { //Person.show(); Sys ...
- phpunit 入门
话说,使用phpunit还是处于好奇之心,为什么以前一直没使用呢?主要是嫌麻烦,小项目,前后端都是自己写,几个人就完成的工作,没必要弄的那么麻烦.好了,废话不多说,让我们一起来感受下phpunit吧! ...