无论.Net Framework如何,我们如何从GAC访问二进制文件

Man*_*yya -1 .net c# gac

最初,我们正在开发.Net Framework 3.5.因此,GAC路径在代码中被硬编码为

C:\Windows\assembly\GAC_64\{0}\1.0.0.0__008145f79b9aec14\{0}.dll
Run Code Online (Sandbox Code Playgroud)

后来我们迁移到.Net Framework 4.0.现在应该是必需的路径

C:\Windows\Microsoft.NET\assembly\GAC_64\{0}\v4.0_1.0.0.0__008145f79b9aec14\{0}.dll
Run Code Online (Sandbox Code Playgroud)

目前可以通过将第二个路径放在我的代码中来解决问题.但是当微软发布下一套框架时,它可能会失败.

所以我想知道是否有任何方法可以独立于.Net Framework访问GAC二进制文件.

对此有任何意见都会有所帮助.谢谢

Bot*_*000 5

如果要从GAC 加载程序集,请使用其完全限定名称加载它:

Assembly.Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
Run Code Online (Sandbox Code Playgroud)

如果它在GAC中找到,它将从那里加载.

永远不应该在任何地方硬编码GAC的路径.它可以随时更改,甚至可以在Service Pack或补丁之间进行更改,这是您不能依赖的实现细节.