我最近创建了一个WPF应用程序,我在其中使用InstallShield Limited Edition项目进行设置和deplotment,以创建一个exe文件。 这样做是因为我可以将它安装在需要它的地方,但是在另一台PC上安装程序后不久我遇到了麻烦。 程序安装正确(我相信),但我遇到了我正在使用的计时器的问题。 (System.Timers.Timer)没有触发和/或处理这些不是开发PC的其他PC(即没有VS15 / 17)。 该程序仅在开发PC上使用时才有效。
我试图弄清楚为什么它不起作用,我无法弄清楚他们缺少什么工作。 PC都有他们应该使用的Microsoft框架(4.5及以上版本),所以我的想法已经用完了。
此行位于MainWindow
的构造函数内crashCheckTimer = new System.Timers.Timer(_waitTime);
SetTimer方法
private void SetTimer(bool start)
{
// Hook up the Elapsed event for the timer.
try
{
crashCheckTimer.Enabled = start;
crashCheckTimer.AutoReset = true;
crashCheckTimer.Elapsed += CrashCheckEvent;
}
catch (Exception ex)
{
logBuilder.ErrorLogCreation(ex, DateTime.Now, "SetTimer", NumberOfFilesToKeep);
throw;
}
}
CrashCheckEvent只运行一些代码,但从未在非开发人员的PC上调用
更新 我根据同事的建议将Timers.Timer更改为Dispatcher.Timer,这似乎解决了我再次触发计时器的问题。