我正在尝试加载
System.ValueTuple 版本=4.0.3.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51
在我当前的应用程序域中,通过指定完整路径使用 Assembly.LoadFrom 方法。
该程序集确实存在于该路径中,并且它具有与我需要的版本相同的版本,但它最终会加载
System.ValueTuple 版本=4.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51
来自 GAC。
第二个具有不同的内部版本号。我知道程序集探测从 GAC 开始,但由于这些程序集都是强命名的(因此它们都有唯一的标识),难道它不应该意识到这些是不同的程序集,然后在 GAC 中找不到它后加载它从指定路径?
有没有办法可以强制它从指定路径加载,而不是从 GAC 加载?
装配探测并非从 GAC 开始。
很有可能,在您尝试加载您的版本之前,某些程序集已加载版本,因此它总是会选择已经找到的版本。
您可以尝试调查哪个程序集正在加载此类版本,并将该一个或这些程序集更新为所有引用并加载您需要使用的版本。或者,如果不可能的话,您可以添加程序集重定向。
更多信息: