【问题标题】:Right-click Function Not working at runtime, because the supportive DLL is not present右键单击 Function 在运行时不起作用,因为不存在支持的 DLL
【发布时间】:2014-03-05 09:06:24
【问题描述】:

在所有软件(.net、框架等)都存在的本地机器上。我可以完美运行在 Power Builder 上开发的应用程序。

我的问题:但是在“清洁环境(新机)”中,当我尝试运行应用程序时,右键单击功能不起作用。

事情是这样的:在我的机器上我可以完美地工作。但是在干净的机器上,右键功能可以正常工作。

为什么?因为应用程序输出文件中缺少支持的 DLL。

我需要什么? 在 Power builder 中支持右键单击功能的 DLL 的名称。

如果您对我的问题有疑问,请随时提出,如果您需要,我可以进一步向您详细解释。

编辑:右键获取日志

Main Exception:
Exception Time: 2014-03-06 16:19:55.7773706
Process ID: 2188
AppDomain: urbis.exe Domain ID: 1
Managed Thread ID: 1
Current Thread State: Running
Method: Void remove_Click(System.EventHandler)
Exception Type: System.NullReferenceException
Exception Message: System.NullReferenceException: Object reference not set to an instance of an object.   
   at System.Windows.Forms.MenuItem.remove_Click(EventHandler value)
   at Sybase.PowerBuilder.Win.WinOwnerdrawMenuItem.Sybase.PowerBuilder.Win.IPBWinMenu.remove_Click(EventHandler value)
   at Sybase.PowerBuilder.Win.PBMenu.Dispose(Boolean disposing)
   at Sybase.PowerBuilder.PBPowerObject.PBDispose()
   at Sybase.PowerBuilder.PBSessionBase.DestroyObject(Object obj)
Exception Source: System.Windows.Forms
Exception StackTrace:    at System.Windows.Forms.MenuItem.remove_Click(EventHandler value)
   at Sybase.PowerBuilder.Win.WinOwnerdrawMenuItem.Sybase.PowerBuilder.Win.IPBWinMenu.remove_Click(EventHandler value)
   at Sybase.PowerBuilder.Win.PBMenu.Dispose(Boolean disposing)
   at Sybase.PowerBuilder.PBPowerObject.PBDispose()
   at Sybase.PowerBuilder.PBSessionBase.DestroyObject(Object obj)
Exception Call Stack:    at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)

谢谢

【问题讨论】:

  • 您在哪里缺少“右键单击功能”:数据窗口、窗口、编辑字段?什么是“不工作”?你有任何错误信息吗?它应该显示特定的东西吗?用于部署系统的机器是否与您的开发机器相同?
  • 补充Seki的问题,这些是自定义菜单还是操作系统自带的原生RMB菜单? RMB 菜单没有特定的 DLL,因此除非这是第一次实例化菜单,否则如果您无法实例化菜单,我希望您之前会遇到其他问题。我会尝试 PBDEBUG 跟踪,看看是否给你任何线索。
  • 如果您提供一些基本信息,例如:PowerBuilder 的哪个版本?是 PowerBuilder.Net 吗?它是从 PB Classic 部署的 Winform 应用程序还是标准的 PowerBuilder 应用程序?
  • 1.在“窗口”中。没有错误信息。 eg:右键“Expand All Level”,点击这个,里面的内容应该展开。取而代之的是“没有采取任何行动”。 2.正在使用Power builder Classic 12.0。 3. 感谢 Seki、Terry、Roland Smith 的回复。
  • 4. “重要”:在调试它的工作完美时。在运行时它不起作用。详细地说,如果我不得不说:Afetr 部署您将获得“项目输出文件夹”。我将该特定文件夹粘贴到“干净的机器(未安装软件的新操作系统)”中,并运行应用程序。除了上面解释的右键单击功能外,一切正常。

标签: powerbuilder


【解决方案1】:

右键单击不起作用的 PC 可能缺少 GAC 中的一些 .NET 运行时 DLL。根据 Sybase 文档:

The applications you create in PowerBuilder .NET automatically reference several .NET
assemblies that must be present in the global assembly cache (GAC) on the design time
and runtime computers. The PowerBuilder setup program installs the required assemblies
in the GAC of the design time computer, but they also must be deployed or installed in
the GAC of each runtime computer. The following list shows the Microsoft assemblies
(and their .NET Framework version numbers) that are installed with PowerBuilder and can
be redistributed to runtime computers with the PowerBuilder Runtime Packager:
• System.dll (v 2.0)
• PresentationCore.dll (v 3.0)
• PresentationFramework.dll (v 3.0)
• WindowsBase.dll (v 3.0)
• System.Xml.Linq.dll (v 3.5)
• Sybase.PowerBuilder.WPF.dll
• Sybase.PowerBuilder.Common.dll
• Sybase.PowerBuilder.Interop.dll
• Sybase.PowerBuilder.Core.dll

每页 5: http://download.sybase.com/beta/pb12ctp/Sybase_PB12_.NET_FeaturesGuide.pdf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 2015-05-19
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多