2010-04-08 70 views

回答

3

因此,由于它尚未发布,没有任何官方的,但从我听说的公告中,这不是在这个版本的意图。请注意,以前的版本并不打算支持.NET控件,但人们喜欢Bruce Armstrong found creative ways to do it anyway。 (PB12已经非常庞大),但是他们是否会完全放弃XBAP(这是他们的WPF工作的逻辑扩展)并不是100%清楚的,或者其他类似HTML5的东西。

祝你好运,

特里。

0

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

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

  2. 然后,您需要将项目从WPF窗口应用程序转换为WPF浏览器应用程序。这可按照本教程来完成:http://www.charlespetzold.com/blog/2006/11/120718.html

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

    删除:
    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-application.aspx

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

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

好运。

+0

我遵循几乎相同的方法。但是,我没有碰到3作为一个问题。你是否指示你改变了PB在那里生成的C#代码?另外,关于6,我只是在XBAP的部署清单中包含PB12.Net运行时,所以它们不需要安装在客户端上。刚开始下载需要很长时间。我遇到的主要问题是PB在浏览器外部启动应用程序,因为主窗口类是Window而不是Page。我试着将其更改为Page,但是PB12不会正确生成EXE。 – 2011-04-01 16:59:03

+0

3:是的,我更改了生成的代码。 6:好!我虽然只有.NET程序集可以包含在部署清单中。在单独的窗口中打开应用程序不是问题。 – ygormutti 2011-05-30 13:55:07

相关问题