2017-03-01 55 views
1

當我發佈我的應用程序 - 基於Monogame的Windows 8.1應用程序和Windows Phone 8.1(通用應用程序,兩個二進制文件)的XAML應用程序時 - 認證失敗:SharpDX.XInput.dll(xinput1_4.dll):此應用程序類型不支持API

該應用程序類型不支持此API - Api = XInputEnable。模塊= xinput1_4.dll。文件= SharpDX.XInput.dll。

此應用程序類型不支持此API - Api = XInputGetAudioDeviceIds。模塊= xinput1_4.dll。 File = SharpDX.XInput.dll。

此API不支持此應用程序類型 - Api = XInputGetBatteryInformation。模塊= xinput1_4.dll。 File = SharpDX.XInput.dll。

此應用程序類型不支持此API - Api = XInputGetCapabilities。模塊= xinput1_4.dll。 File = SharpDX.XInput.dll。

此應用程序類型不支持此API - Api = XInputGetKeystroke。模塊= xinput1_4.dll。文件= SharpDX.XInput.dll。

此API不支持此應用程序類型 - Api = XInputGetState。模塊= xinput1_4.dll。文件= SharpDX.XInput.dll。

此API不支持此應用程序類型 - Api = XInputSetState。模塊= xinput1_4.dll。文件= SharpDX.XInput.dll。

此API不支持此應用程序類型 - Api = GetNativeSystemInfo。模塊= KERNEL32.DLL。 File = AdDuplex.Universal.Win.WinRT.winmd。

所有這些消息都是關於Windows 8.1二進制文件的。我以前有過Monogame和AdDuplex的應用程序,一切都很好。好吧,即使我排除了AdDuplex,也存在SharpDX.XInput.dll,它隱式包含在項目中(我沒有包含它)。

萬一 - 在我的應用我包括以下內容:

C:\ Program Files文件(x86)的\ MonoGame \ 3.0 \組件\ Windows8的\ MonoGame.Framework.dll SharpDX.dll SharpDX.Direct2D1.dll SharpDX.Direct3D11.dll SharpDX.DXGI.dll SharpDX.MediaFoundation.dll SharpDX.XAudio2.dll

應用工作在Win 8.1和10行,但認證失敗。 從c:\ Program Files(x86)\ MonoGame \ v3.0 \ Assemblies \ WindowsUniversal文件夾嘗試dll,但它們的目標是.net 5.0,而win8.1應用程序目標4.5.1。

是否可以發佈Monogame Windows 8.1 XAML應用程序?

回答

0

在我的特殊情況下,有一個簡單的解決方案。我使用winrt lib進行後臺處理,它是「便攜式」的,所以我只是爲了編譯代碼庫而將Monogame包含在win8 xaml中。所以我把這個winmd包含在win和wp項目中,一切都在本地工作。但msft分析器發現dll名稱和認證失敗。

解決方案是製作兩個「便攜」庫,相同,但在第二個包含winog 8.1的Monogame中。 Msft承諾你可以爲兩個二進制文件使用一個項目,因爲它是可移植的(並且它可以工作,但msft不會接受這個二進制文件)!一如既往,MSFT文檔只是一個恥辱。他們甚至買了Monogame和Xamarin ......

相關問題