c# WPF在尝试将文件扩展名与GUI关联时加载程序集失败



我试图将打开文件扩展名(. flow)与我的应用程序相关联,以便您可以打开此扩展名,我的应用程序打开并加载信息因此,在主窗口中,我添加了以下内容:

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
string[] args = Environment.GetCommandLineArgs();
foreach (string arg in args)
{
if (System.IO.Path.GetExtension(arg) == ".flw")
{
Console.WriteLine("Path = " + arg);
SerializationHelper.LoadFlow(arg);
}
}
}

"。文件正在打开并正确读取,但是当我使用此扩展打开应用程序时,应用程序的依赖项之一,"Framework.DLL"似乎丢失了,好像它正在与文件。flow .

在同一目录中搜索。例如,当我双击位于我桌面上的"flow"文件时,它会显示:

无法加载文件或程序集文件"DesktopFramework.dll"或其依赖项之一。系统找不到指定的文件

这个特定的依赖项是一个c# DLL,我将它用于我的应用程序的样式,并将其添加为引用。

它与应用程序一起安装在与。exe路径相同的路径中,但似乎当我使用'. exe '打开应用程序时。在我的文件

的同一目录中搜索此程序集。请注意,从桌面快捷方式打开应用程序不会导致此问题。

我可以通过更改应用程序的当前目录来解决这个问题。

似乎从任何其他文件而不是exe文件打开应用程序,应用程序的当前目录被设置为该文件的位置,因此无法找到依赖项。

在我的app。example。cs我将当前目录设置为exe路径

的目录。
string exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
Console.WriteLine("exe path = " + exePath);
System.Environment.CurrentDirectory = exePath;

最新更新