如何从不同的目录运行 WPF 应用程序

本文关键字:运行 WPF 应用程序 | 更新日期: 2023-09-27 18:36:58

>我使用 WPF 创建了一个基本工具。 如果我从它所在的目录中运行该工具,一切正常。 但是,如果我从不同的目录运行,则没有任何反应。 从命令行,它只是返回到提示符。 我在WinForms应用程序中没有遇到此问题,并且该目录确实包含该工具所依赖的dll。 还能发生什么?

编辑:我想我想出了这个问题。 它在MainWindow.xaml.cs构造函数中的InitializeComponent调用中消亡。 绑定到的属性正在尝试访问 null 的对象。 但是,我还没有弄清楚为什么该属性仅在我从其他目录运行时为 null。 认为这个问题已经解决了。

如何从不同的目录运行 WPF 应用程序

re:为什么属性为空

我怀疑InitializeComponent正在尝试加载一些资源,并在工作目录中查找资源文件。

试试这个:

var realWD = Environment.CurrentDirectory;
Environment.CurrentDirectory =
        System.IO.Path.GetDirectory(
            System.Reflection.Assembly.GetEntryAssembly().Location);
InitializeComponent();
Environment.CurrentDirectory = realWD;

编辑:只是重新格式化以避免水平滚动。

-耶西