2016-09-21 86 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塊包裝更小的相關代碼部分,並讓按鈕初始化。如果應用程序在引發異常時不應運行,則可以顯示消息或類似的消息並退出。

相關問題