SharpDX.XInput.dll(xinput1_4.dll):此应用程序类型不支持API

时间:2017-03-01 22:24:43

标签: c# windows-store-apps win-universal-app monogame

当我发布我的应用程序 - 基于Monogame的Windows 8.1应用程序和Windows Phone 8.1(通用应用程序,两个二进制文件)的XAML应用程序时 - 认证失败:

  

此应用程序类型不支持此API -   API = XInputEnable。模块= xinput1_4.dll。文件= SharpDX.XInput.dll。

     

此应用程序类型不支持此API -   API = XInputGetAudioDeviceIds。模块= xinput1_4.dll。   文件= SharpDX.XInput.dll。

     

此应用程序类型不支持此API -   API = XInputGetBatteryInformation。模块= xinput1_4.dll。   文件= SharpDX.XInput.dll。

     

此应用程序类型不支持此API -   API = XInputGetCapabilities。模块= xinput1_4.dll。   文件= 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。   文件= AdDuplex.Universal.Win.WinRT.winmd。

所有这些消息都是关于Windows 8.1二进制文件的。之前我有使用Monogame和AdDuplex的应用程序,一切都很好。好吧,即使我排除了AdDuplex,也有SharpDX.XInput.dll,它隐含地包含在项目中(我没有包含它)。

以防万一 - 在我的应用中,我包含以下内容:

c:\ Program Files(x86)\ MonoGame \ v3.0 \ Assemblies \ 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应用程序?

1 个答案:

答案 0 :(得分:0)

在我的特定情况下,有一个简单的解决方案。我使用winrt lib进行后台处理,它是"可移植的",所以我将win8 xaml的Monogame包含在其中只是为了编译代码库。所以我把这个winmd包含在win和wp项目中,一切都在本地工作。但msft分析器发现dll名称和认证失败。

解决方案是制作两个便携式产品。 libs,相同但在第二个我包括用于winphone 8.1的Monogame。 Msft承诺你可以为两个二进制文件使用一个项目,因为它是可移植的(它可以工作,但msft不会接受这个二进制文件)!像往常一样,msft文档只是一个耻辱。他们甚至买了Monogame和Xamarin ......