开发者

Error from GetSatelliteAssembly called on assembly that lives outside AppDomain paths

The purpose of my application is to pick some开发者_StackOverflow中文版 localized strings from an assembly. Part of the specification is:

  • The assembly is to be selected by the user at run-time
  • The assembly is private one, i.e. not registered with GAC

The code I came up with is:

Assembly resAssembly = Assembly.LoadFile(@"X:\PathToApp\Assembly.Name.dll");
CultureInfo ci = new CultureInfo("es-MX");
Assembly satAssembly = resAssembly.GetSatelliteAssembly(ci);

The last line threw an exception:

Could not load file or assembly "Assembly.Name.resources" or one of its dependencies. The system can not find the file specified.

I have overcome the exception by copying the folders that contain the satellite assemblies to the application root.

I do not like this approach. Any alternative ideas?

Many thanks in advance


The Assembly.LoadFile method doesn't use a binding context, so its dependencies aren't automatically found in its directory.

You can instead use Assembly.LoadFrom.

You can read Suzanne Cook's post on the differences between these two methods to obtain further information (LoadFile vs. LoadFrom).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜