找不到自定义程序集时如何立即关闭/关闭 Excel VSTO 工作簿
Posted
技术标签:
【中文标题】找不到自定义程序集时如何立即关闭/关闭 Excel VSTO 工作簿【英文标题】:How to immediately shutdown/close Excel VSTO Workbook when customize assembly not found 【发布时间】:2009-07-20 12:08:38 【问题描述】:我在 Visual Studio 2008 中创建了一个 Excel 工作簿解决方案。当我构建解决方案时,我得到一个 .XLS 文件和一个 .DLL(自定义程序集)。
我现在可以通过双击 .XLS 来启动 Excel 工作表,并且我的工作表与我的所有 C# 代码一起运行。
但是在那个自定义 dll 的演员阵容中不可用。我再次启动 Excel 工作簿,Excel 弹出消息“找不到或无法加载自定义程序集。 您仍然可以编辑和保存文档。请联系您的管理员或此文档的作者以获得进一步的帮助。”有详细信息和确定按钮。如果我按确定按钮,excel 工作簿仍在工作。如何自动关闭或关闭此工作簿?
谢谢
【问题讨论】:
【参考方案1】:仅供参考:http://www.devcity.net/PrintArticle.aspx?ArticleID=239
【讨论】:
【参考方案2】:你不能可靠地做到这一点。您需要能够运行代码来关闭工作簿,如果找不到包含您的代码的 DLL,则无法从那里运行代码来关闭工作簿。您可能能够将 VBA Workbook_Open 处理程序侵入到同一个工作簿中,该工作簿将以某种方式检查您的托管代码是否存在,并在工作簿未正确加载时尝试关闭该工作簿,但这假设您可以让 VBA 运行,Excel 2007 及更高版本上的默认设置会阻止(即使 VBA 已签名)。我也不知道在托管代码和 VBA 都存在的情况下哪个处理程序会首先运行。
【讨论】:
以上是关于找不到自定义程序集时如何立即关闭/关闭 Excel VSTO 工作簿的主要内容,如果未能解决你的问题,请参考以下文章
如何防止 Spring Boot 守护程序/服务器应用程序立即关闭/关闭?
Spring security自定义登录页面不允许我进入[关闭]
关闭一个自定义弹出窗口UIViewController并立即显示另一个自定义弹出窗口UIViewController -SWIFT