Guide.IsTrialMode是否适用于Windows 8商店应用程序的MonoGame?

Geo*_*ett 5 c# monogame windows-8 windows-store-apps

我一直在使用XNA为xbox和windows phone 7制作游戏.现在我想使用MonoGame 创建一个Metro 8 Store应用程序.

我成功地跳过了所有的篮球并让它运转起来,但我遇到了问题Guide.IsTrialMode.

我有单独的逻辑,取决于游戏是否处于试用模式,哪个适用于其他平台,但是当我在本地机器上测试我的应用程序时,或者在模拟器中它总是认为我没有购买游戏.我担心的是,当它在应用程序商店并且人们实际购买它时,逻辑不会改变.

TL; DR:请问Guide.IsTrialMode工作MonoGame为Windows 8商店应用以及如何测试呢?

luk*_*itt 3

编辑:在调试中,您似乎可以设置Guide.SimulateTrialMode以测试一种或另一种方式。


以下是有关 Windows 8 应用商店应用程序试用模式的信息:

创建您的应用程序的试用版

License信息类

基本上,它使用 bool 标志licenseInformation.IsTrial。如果你深入GitHub 上的 MonoGame 源代码,我们可以看到他们是如何实现检查的:

#if WINDOWS_STOREAPP
    var licenseInformation = CurrentApp.LicenseInformation;
    ...
    isTrialMode = !licenseInformation.IsActive || licenseInformation.IsTrial;
#endif
Run Code Online (Sandbox Code Playgroud)

因此,您的许可证信息似乎未设置为活动状态,或者如果您在测试时遇到问题,则设置为试用状态。第一个链接包含有关如何测试它的信息,但我不确定如何将其扩展到 MonoGame:

现在,使用对许可证服务器的模拟调用来测试您的应用程序。在 JavaScript、C#、Visual Basic 或 Visual C++ 中,在应用的初始化代码中将对 CurrentApp 的引用替换为 CurrentAppSimulator。CurrentAppSimulator 从名为“WindowsStoreProxy.xml”的 XML 文件获取特定于测试的许可信息,该文件位于 \Microsoft\Windows Store\ApiData。如果此路径和文件不存在,则必须在安装期间或运行时创建它们。如果您尝试访问 CurrentAppSimulator.LicenseInformation 属性,而该特定位置中没有 WindowsStoreProxy.xml,则会收到错误消息。

我想在最坏的情况下,你可以自己构建 MonoGame,更改CurrentAppCurrentAppSimulator.