【发布时间】:2016-03-14 17:07:41
【问题描述】:
当我试图显示 InterstitialAd 广告时,我试图弄清楚我的 UWP 应用发生了什么。我想在两分钟后使用该应用程序后显示它,然后在我的应用程序中执行某些操作时每 5 分钟显示一次。它在调试模式下按预期工作,但在发布模式下没有,所以我试图在发布模式下调试我的代码以查看发生了什么,但我看不到我看不到变量的值。
我的 app.xaml.cs 中的代码非常简单:
public static void VideoAdvertCheck()
{
if (!IsCoreFeaturesLocked || AdRequested)
return;
double elaspedTime;
bool valid;
Debug.WriteLine("Elapsed Time since last advert: {0}",
DateTime.Now.Subtract(AdvertTimeStart).TotalMinutes);
#if DEBUG
elaspedTime = DateTime.Now.Subtract(AdvertTimeStart).TotalMinutes;
valid = elaspedTime >= (AdNeverDisplayed ? 1 : 1);
#else
elaspedTime = DateTime.Now.Subtract(AdvertTimeStart).TotalMinutes;
valid = elaspedTime >= (AdNeverDisplayed ? 2 : 5);
#endif
if (AdNeverDisplayed && valid)
AdNeverDisplayed = false;
//2 minute or 5 minutes has elapsed.
if (valid)
{
RequestVideoAdvert();
}
}
elapsedTime 和 valid 变量都在条件编译语句中声明,我将它们移出,希望能有所帮助,但无济于事。
即使 2 分钟还没有过去,valid 总是看起来是真的,所以为什么它首先是真的,为什么不能评估我的变量和/或条件,例如
valid = elaspedTime >= (AdNeverDisplayed ? 2 : 5);
AdNeverDisplayed 在我的应用启动时设置为 true。
任何人都可以在这个逻辑中看到任何错误,但更重要的是我如何在发布模式下调试它。
请注意,问题出现在发布模式(在笔记本电脑上)以及当我的应用在商店中发布并直接下载到我的手机上时。
我认为这个问题不仅仅针对通用应用程序,因为它是非常通用的代码。
我注意到的一件事是,当处于发布模式并请求 InterstitialAd 时,它甚至会触发 Cancelled。没有意义!
更新 - 1:
我应该提到它在设置断点时停止,但我在Locals、Autos 或Watch 中看不到任何变量。
【问题讨论】:
标签: c# win-universal-app windows-10-universal