我使用WPF创建了一个基本工具。如果我从它所在的目录中运行该工具,一切正常。但是,如果我从不同的目录运行,没有任何反应。从命令行,它只返回到提示符。我没有WinForms应用程序的这个问题,该目录确实包含该工具所依赖的一个DLL。还有什么可以继续?
编辑:我想我发现了这个问题。它在MainWindow.xaml.cs构造函数中的InitializeComponent调用中死亡。被绑定的属性试图访问null的对象。但是,我还没有弄清楚为什么只有当我从另一个目录运行时该属性为null。考虑一下这个问题就解决了。答案 0 :(得分:3)
re:为什么属性为null
我怀疑InitializeComponent正在尝试加载一些资源,并在WorkingDirectory中查找资源文件。
试试这个:
var realWD = Environment.CurrentDirectory;
Environment.CurrentDirectory =
System.IO.Path.GetDirectory(
System.Reflection.Assembly.GetEntryAssembly().Location);
InitializeComponent();
Environment.CurrentDirectory = realWD;
修改:重新格式化,以避免水平滚动。
-Jesse