gpt4 book ai didi

c# - WCF WiX部署的应用程序命令不起作用

转载 作者:行者123 更新时间:2023-12-03 10:34:12 39 4
gpt4 key购买 nike

我有一个使用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();
}
}

有什么建议吗?

最佳答案

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

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

关于c# - WCF WiX部署的应用程序命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39625062/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com