4

是否可以在 Powerbuilder 12 中创建 XBAP 应用程序?我了解到 powerbuilder 12 支持 WPF,但我不确定 WPF 浏览器 (XBAP) 应用程序。

任何帮助或链接表示赞赏。

谢谢!

4

2 回答 2

3

所以,由于它还没有发布,所以没有任何官方消息,但从我听到的公告来看,这不是本次发布的意图。请注意,以前的版本并没有打算支持 .NET 控件,但像Bruce Armstrong 这样的人还是找到了创造性的方法来实现它

宣布的意图是研究 PB12 之后的新 Web 解决方案(PB12 已经相当庞大),但他们是否会选择 XBAP(这是他们 WPF 工作的逻辑扩展)或其他类似的东西还不是 100% 清楚HTML5。

祝你好运,

特里。

于 2010-04-08T12:53:54.643 回答
0

不可以,但您可以手动将 WPF Windows 应用程序目标转换为 XBAP。我按照这些步骤将一个经典的 PB 应用程序发布为 XBAP 应用程序,它可以工作,但应用程序非常简单;不知道它是否适合你。

  1. PB12.NET 生成 Visual Studio 无法读取的 .csproj 文件,因为它们是 UTF-16 且缺少 BOM。您可以通过在记事本中打开它们并保存来解决此问题。

  2. 然后您需要将项目从 WPF Window App 转换为 WPF Browser App。这可以按照本教程完成:http: //www.charlespetzold.com/blog/2006/11/120718.html

  3. PB 生成一个包含 Main 函数(应用程序入口点)的 PBApplicationEntryPoint.cs 文件。Main 调用实例方法 PBSession.RunWPFApp,后者调用实例方法 System.Windows.Application.Run(),但这在 XBAP 应用程序中是禁止的。我不知道 RunWPFApp() 究竟做了什么,但 PresentationHost(在客户端机器上执行 XBAP 的程序)可能能够启动应用程序,如果您删除此调用并调用 PBApplication .create() 和 .open()方法,这样:

    删除:
    session.RunWPFApp();
    添加:
    c__a_your_application_name.GetCurrentApplication().create(); c__a_your_application_name.GetCurrentApplication().open("");

  4. 由于某种我不知道的原因,在关闭窗口后打开任何窗口都会引发异常并且程序将被终止。我找到的解决方案是使用 MDI(在 PB12.NET 中,MDI 在视觉上等于 TDI)并使用 OpenSheet(WithParm) 作为选项卡打开窗口。

  5. PB12.NET 运行时依赖于一些本机库(即)非托管代​​码,因此必须给予应用程序完全信任才能使用这些库。本教程展示了如何部署完全信任的 XBAP(对我有用):http: //blogs.microsoft.co.il/blogs/maxim/archive/2008/03/05/wpf-xbap-as-full-trust-应用程序.aspx

  6. 客户端计算机必须安装 PB12.NET 运行时包和 .NET 3.5 SP1。

Sybase 对支持 Silverlight 比支持 XBAP 更感兴趣,因此我们可能永远不会看到正式支持的 XBAP 部署功能。

祝你好运。

于 2011-04-01T14:17:17.893 回答