我刚刚完成了对2010-Excel之前的VSTO加载项的更新。它有一个功能区定制,包括启动一个窗体。在我的开发机器上它工作正常并加载表单,但在部署版本中它不起作用。它也不会在我能够捕获的任何地方抛出异常,并且我不知道我能做些什么阻止窗口加载。
出于更好的想法,我开始设置断点和消息框:
Private Sub RibbonControlPanelButton_Click(sender As Object, e As RibbonControlEventArgs) Handles RibbonControlPanelButton.Click
Environment.SetEnvironmentVariable("VSTO_LOGALERTS", 1)
Environment.SetEnvironmentVariable("VSTO_SUPPRESSDISPLAYALERTS", 0)
MsgBox("1")
Dim cp1 As New ControlPanel
MsgBox("2")
cp1.Show()
MsgBox("3")
cp1 = Nothing
MsgBox("4")
End Sub
在这个测试中,我把它变为“1”,所以失败的是制作New ControlPanel
这是我的窗体。我尝试在
Private Sub ControlPanel_Load(sender As Object, e As EventArgs) Handles MyBase.Load
但他们都没有成功。因此我知道它甚至没有加载。如何获得有关出错的更多信息?我无法在任何地方看到任何异常记录。我之前的版本仍然可以使用(cp1
已经制作并显示),但我已经调整了很多我不想再回到它重建的东西了。
我误以为如果它在开发环境中工作,它将在几乎相同的部署环境中工作。有没有办法让这些合并?如果我可以在VS2012中与问题进行交互,我觉得我可以更快地进行调试,但是当我安装VS2012时,事情就有了......
答案 0 :(得分:0)
我找到了答案。虽然我没有资格正式称这是一个MS错误,但似乎就是这样。
它一直未能成为Win的新实例。表单,但是当我尝试从功能区启动它时,我没有收到任何错误。我更改了this workbook
的启动条件,因此它尝试创建Win Form的新实例。
当我收到无法找到PowerPacks 10的错误时。这似乎很奇怪,因为在我的Clickonce部署中,PowerPacks 10被列为先决条件。之前已经安装了版本3的powerpacks here的“公共”版本,这进一步让人感到困惑。不知怎的,它通过了安装程序的检查,但不是程序所需要的。当我对来自link in the installer的版本(实际上是版本10)进行DL版本时,一切正常。
我已经仔细检查过,发现v10被列为prereq,但由于某种原因,它没有被Clickonce安装程序捕获。我认为我之前版本的程序工作但当前版本没有的原因是我的表单中使用了不同种类的行(原因很多!)。
希望这可以拯救别人的心痛。