C# can';t加载类型为(UserType)的程序集。AssemblyQualifiedName

C# can';t加载类型为(UserType)的程序集。AssemblyQualifiedName,c#,assemblies,C#,Assemblies,我在程序集MyUserType.dll中创建了一个类Address。我想在控制台应用程序中加载它。我尝试了下面的代码,但失败了: //cfg.AddAssembly(typeof(Address).AssemblyQualifiedName); 但当我尝试使用其他加载程序集方法时,它成功了 cfg.AddAssembly(Assembly.GetAssembly(typeof(Address))); cfg.AddAssembly("MyUserType"); 失败的消息是: Messag

我在程序集
MyUserType.dll
中创建了一个类
Address
。我想在控制台应用程序中加载它。我尝试了下面的代码,但失败了:

 //cfg.AddAssembly(typeof(Address).AssemblyQualifiedName);
但当我尝试使用其他加载程序集方法时,它成功了

cfg.AddAssembly(Assembly.GetAssembly(typeof(Address)));
cfg.AddAssembly("MyUserType");
失败的消息是:

Message=“无法加载文件或程序集”Ordering.Data.Address,Ordering.Data,Version=1.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。给定的程序集名称或代码基无效。(HRESULT中的异常:0x80131047)


为什么?

Ordering.Data.Address
引用的程序集与库
MyUserType.dll
不在同一目录中。确保所有引用的程序集都位于System32文件夹、GAC或与库相同的目录中。

Ordering.Data.Address
引用的程序集与库不在同一目录中,
MyUserType.dll
。确保所有引用的程序集都位于System32文件夹、GAC或与库相同的目录中。

Type.AssemblyQualifiedName返回类型的限定名,因为它返回与包含程序集的全名连接的类型的全名。您似乎正在将其传递到Assembly.Load或类似程序中,因此它显然会失败,因为这不是有效的程序集名称


要使用AssemblyQualifiedName,您需要将其传递给静态方法之类的方法,该方法将正确解析它。

Type.AssemblyQualifiedName返回类型的限定名,就像它返回类型的全名与包含程序集的全名连接一样。您似乎正在将其传递到Assembly.Load或类似程序中,因此它显然会失败,因为这不是有效的程序集名称


要使用AssemblyQualifiedName,您需要将其传递给静态方法之类的方法,以便正确解析它。

第一个方法使用字符串作为参数,第二个方法使用程序集作为参数。很难猜测AddAssembly()的重载是什么样子的。第一个重载使用字符串作为参数,第二个重载使用程序集作为参数。很难猜测AddAssembly()的重载可能是什么样子。