我有一个使用WiX构建和部署的WCF应用程序。在我的开发环境中,应用程序运行正常。当我尝试在测试计算机上安装后启动应用程序时,应用程序启动正常,但没有按钮'工作。
(我引用了按钮,因为我有一个实际的按钮和一对不起作用的菜单项。)
我正在使用MVVM模式,所有按钮都使用命令。我已将Datacontext设置为存储命令方法的ViewModel的实例。
MainWindow.xaml.cs:
public MainWindow(Configuration config)
{
InitializeComponent();
log.Info("Application started.");
MainWindowViewModel _model = new MainWindowViewModel(config);
_model.Config = config;
DataContext = _model;
Closing += _model.OnClosing;
}
MainWindowViewModel.cs
public MainWindowViewModel(Configuration config)
{
try
{
Config = config;
...
PlayCommand = new PlayCommand(this);
StopCommand = new StopCommand(this);
PauseCommand = new PauseCommand(this);
OptionsCommand = new OptionsCommand(this);
ExitCommand = new ExitCommand(this);
...
}
catch(Exception ex)
{
log.Error(ex.Message, ex);
}
}
public void Play()
{
<Play logic>
}
PlayCommand.cs
public class PlayCommand : ICommand
{
private MainWindowViewModel _viewModel;
public event EventHandler CanExecuteChanged;
public PlayCommand(MainWindowViewModel viewModel)
{
_viewModel = viewModel;
}
public bool CanExecute(object parameter)
{
return _viewModel.IsPlaying;
}
public void Execute(object parameter)
{
_viewModel.Play();
}
}
有什么建议吗?
答案 0 :(得分:1)
检查日志 - 在初始化任何命令之前可能会抛出异常。
看到它只在测试机器上发生,我的猜测是它正在加载一个不存在的文件或其他一些系统/环境问题。如果应用程序即使发生该异常也可以运行,那么让try-catch块包装一个更小的更相关的代码部分并让按钮初始化。如果在抛出异常时应该不运行应用程序,则可以显示消息或类似内容并退出。