C# 对位于AppDomain路径之外的程序集调用GetSatelliteAssembly时出错

C# 对位于AppDomain路径之外的程序集调用GetSatelliteAssembly时出错,c#,localization,assemblies,C#,Localization,Assemblies,我的应用程序的目的是从程序集中选取一些本地化字符串。本规范的一部分是: 程序集将由用户在运行时选择 大会为私人大会,即未在GAC注册 我想到的代码是: Assembly resAssembly = Assembly.LoadFile(@"X:\PathToApp\Assembly.Name.dll"); CultureInfo ci = new CultureInfo("es-MX"); Assembly satAssembly = resAssembly.GetSatelliteAssem

我的应用程序的目的是从程序集中选取一些本地化字符串。本规范的一部分是:

  • 程序集将由用户在运行时选择
  • 大会为私人大会,即未在GAC注册
我想到的代码是:

Assembly resAssembly = Assembly.LoadFile(@"X:\PathToApp\Assembly.Name.dll");
CultureInfo ci = new CultureInfo("es-MX");
Assembly satAssembly = resAssembly.GetSatelliteAssembly(ci);
最后一行引发了异常:
无法加载文件或程序集“assembly.Name.resources”或其依赖项之一。系统找不到指定的文件

通过将包含附属程序集的文件夹复制到应用程序根目录,我克服了这个异常

我不喜欢这种方法。有其他的想法吗


非常感谢,
Assembly.LoadFile
方法不使用绑定上下文,因此不会在其目录中自动找到其依赖项

您可以改为使用
Assembly.LoadFrom

您可以阅读Suzanne Cook关于这两种方法之间差异的帖子,以获得更多信息()