WCF WiX部署的应用程序命令无法运行

本文关键字:运行 命令 应用程序 WiX 部署 WCF | 更新日期: 2023-09-27 18:08:15

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

(我引用按钮是因为我有一个实际的按钮和一对不能工作的菜单项)

我使用的是MVVM模式,所有按钮都使用命令。我已经将数据上下文设置为存储命令方法的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();
    }
}

任何建议吗?

WCF WiX部署的应用程序命令无法运行

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

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