2016-09-21 56 views
1

我有一个使用WiX构建和部署的WCF应用程序。在我的开发环境中,应用程序运行良好。当我尝试在测试机器上安装后启动应用程序时,该应用程序启动正常,但没有“按钮”工作。WCF WiX部署的应用程序命令不起作用

(我引用按钮,因为我有一个实际的按钮和一对是行不通的菜单项。)

我使用的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

使用Snoop并在运行时检查绑定。 – Will

回答

1

检查日志 - 在初始化任何命令之前可能会抛出异常。

看到它只发生在测试机器上,我的猜测是它加载的文件不存在或其他一些系统/环境问题。如果即使发生该异常,应用程序也可以运行,请使try-catch块包装更小的相关代码部分,并让按钮初始化。如果应用程序在引发异常时不应运行,则可以显示消息或类似的消息并退出。

相关问题