2017-05-09 61 views
1

我想在UWP(side loaded app)中使用.NET Framework程序集。我知道這是不可能的,因爲UWP的目標是.NET Core。UWP - 使用程序集定位.NET Framework 4.6

我試圖創建一個Brokered Windows運行時組件,如this article中所述。

但是我有問題:

  • 我不能使用任何模板,從市場,因爲他們是爲Visual Studio 2015和我使用Visual Studio 2017年
  • 我無法打開示例項目,因爲Visual Studio 2017說這些項目(具有編輯csproj文件的項目)與該版本的Visual Studio 2017不兼容
  • 該文章的構建後腳本使用winmdidl,但它不在我的PATH中,所以我有把完整的路徑"C:\Program Files (x86)\Windows Kits\10\bin\x86\winmdidl"(不知道這是否是蘇)
  • winmdidl命令返回錯誤error W1005: Exception Unknown exception

此外,我有兩個問題:

  • 樣品和物品使用C++「代理」的項目,我可以只寫在C#中的邏輯在不使用任何C++代碼的代理組件中? (我只需要能夠從UWP中調用一些在第三方.NET程序集中定義的方法)
  • 由於「Brokered Windows Runtime Component」方法在.NET Framework中調用某些代碼似乎很麻煩,也許它更好編寫一些Windows服務或某種其他形式的REST服務並通過localhost與之通信?這是我已經用來與機器上的一些第三方工具進行通信的一種方式。代理組件方法的性能和複雜性是否有利?
+1

我沒有試過想這sample,但是這可能是工作。創建WPF應用程序並使用Desktop Bridge將應用程序轉換爲appx包。它將在您擁有.net項目(wpf)和uwp項目的地方創建解決方案。您應該使用類似於使用Brokered Windows運行時組件的類似解決方案。 – Liero

+0

但是,這種方法可以用來從現有的UWP項目引用.NET代碼嗎?將嘗試並更新我的問題,謝謝你的提示。 –

+0

它看起來像將現有的C#UWP應用程序轉換爲「橋接應用程序」也不容易,並且會涉及很多更改爲應用程序。所以我猜想一個本地REST服務仍然是最簡單,最可靠的方式來進行通信。 –

回答

相關問題