C# 访问项目应用程序文件夹中的程序集DLL时发生FileLoadException
我想加载存储在C# 访问项目应用程序文件夹中的程序集DLL时发生FileLoadException,c#,.net,assemblies,fileloadexception,C#,.net,Assemblies,Fileloadexception,我想加载存储在c:驱动器上的项目应用程序文件夹中的程序集 代码如下: public static void Main(string[] args) { Assembly asm = null; asm = Assembly.LoadFrom("C:\\SampleProj\\Workspace\\Test_App\\bin\\Debug\\Assemblies"); } 我得到的例外是: 无法加载文件或程序集的file:///C:\Sam
c:
驱动器上的项目应用程序文件夹中的程序集
代码如下:
public static void Main(string[] args)
{
Assembly asm = null;
asm = Assembly.LoadFrom("C:\\SampleProj\\Workspace\\Test_App\\bin\\Debug\\Assemblies");
}
我得到的例外是:
无法加载文件或程序集的file:///C:\SampleProj\Workspace\Test\u App\bin\Debug\Assemblies'或其依赖项之一。访问被拒绝
我尝试了以下操作,但错误保持不变:
请提供帮助。正如我在评论中所写,您没有指定有效的路径(当需要指定dll时,您正在指定文件夹)。如果要加载该文件夹中的所有程序集,请使用以下代码:
private static List<Assembly> Assemblies = new List<Assembly>();
private static void LoadAllAssemblies(string path)
{
foreach (var dir in Directory.GetDirectories(path))
{
LoadAllAssemblies(Path.Combine(path, dir));
}
foreach (var file in Directory.GetFiles(path))
{
if (Path.GetExtension(file) == ".dll")
{
Assemblies.Add(Assembly.LoadFrom(Path.Combine(path, file)));
}
}
}
私有静态列表程序集=新列表();
专用静态无效加载所有组件(字符串路径)
{
foreach(目录中的var dir.GetDirectories(path))
{
加载所有组件(路径组合(路径,方向));
}
foreach(Directory.GetFiles(path)中的var文件)
{
if(Path.GetExtension(file)=“.dll”)
{
Add(Assembly.LoadFrom(Path.Combine(Path,file));
}
}
}
我不清楚您的问题“您是否正在尝试加载项目已引用的程序集?”DLL位于我的项目的调试文件夹中,位于名为“Assemblies”的文件夹下。别介意,您没有指定正确的值。指定包含.dll扩展名的整个路径。您尝试加载的是目录,而不是程序集。Kaboom,将目录视为文件会产生低级Windows错误,错误为\u访问\u拒绝。CLR无法从中生成更好的错误消息。