debugging通过双击现有文件启动Excel VSTO加载项
我已经开发了Excel VSTO 4.0 C#加载项中的一个错误,但只有在双击现有文件才能启动Excel时才会发生。 我试图找出一种方法来启动VS2013debugging器,以便我可以放入一些断点,但是我没有尝试启动debugging器的方式,模拟双击文件启动Excel的过程。
到目前为止我尝试过的方法:
- 启动Excel本身,然后附加到过程
- 双击一个Excel文件,然后附加到生成的过程
- 在“启动操作”下的VS项目“debugging”属性中,在“启动外部程序”框中inputExcel Excel.exe的path,并在命令行参数框中input现有Excel文件的path
- 将Excel.exe作为新的现有项目添加到我的VS解决scheme中,将现有文件的path作为项目属性中的参数,将其设置为解决scheme的启动项目。
这些启动debugging器的方法都没有重现错误。 有没有另一种方法来启动debugging时,双击文件启动Excel?
对于它值得的,我遇到的错误是,当Excel尚未运行时双击现有文件时将会创build一个空的工作簿。 我需要找出哪里/为什么这个空文件正在创build。 如果Excel已经在运行,并且双击某个文件将其打开,则不会发生这种情况。
尝试使用任何日志logging机制来logging代码中的任何操作。 因此,您将能够在运行时查找代码中发生了什么。 例如,您可以将操作写入日志文件。 您可能会发现log4net库有帮助。
这适用于我:
private void ThisAddIn_Startup(object sender, System.EventArgs e) { System.Diagnostics.Debugger.Launch(); ... }
我假设你在处理WorkbookOpen事件的方法中pupse断点。
当您双击一个Excel文件时,它将被加载并引发事件WorkbookOpen。 VSTO加载项尚未加载,因此您无法获取该事件。 加载工作簿后,Excel加载VSTO加载项。
所以当你的加载项被加载的时候,你的AddinStartup处理函数就会起作用。 在vb.net中,处理程序行显示为…
Private Sub ThisAddIn_Startup() Handles Me.Startup
您现在可以在ThisAddIn_Startup中检查加载的工作簿
If Application.ActiveWorkbook IsNot Nothing Then DoSomething(Application.ActiveWorkbook) End If
另一种模仿这些debugging的方法是打开文件并closures文件,手动加载和卸载使用Excel选项的插件。
-
在Addin_Startup上放置一个断点。
-
开始VSTO项目的正常debugging。
-
加载文件。
-
进入excel选项,并通过取消选中卸载您的插件。
-
进入Excel选项,并通过检查来加载你的插件。
- VBA:在文本框中查找string并将其更改为某个string
- 无法debuggingExcel 2003插件(XLL)
- Excel:错误中断不能在用户定义的函数中使用
- debuggingJava Eclipse中的Unshowvariables添加jar文件时
- Windows()。激活除一个之外的每台计算机上的作品
- 获取debugging模式下的工作表数 – MS Excel PIA
- Excel VBA编译抛出一个“用户定义的types没有定义”的错误,但不会触犯代码行
- Excel VBA:“excel vba运行时错误1004”应用程序定义或对象定义的错误
- Excel 2013 VBA Workbooks.Open失去debugging步骤模式?