2010-04-08 101 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

相關問題