1. 察看配置文件,配置文件共有3处:
a. app.config :
b. publisher policy file:
c. machine.config:
第一步结束,我们已经根据Calling AssemblyManifest中的Referenced Assembly 和配置文件中得到了一个Full Qualified Assembly Name
2. 根据第一步得到的FQAN查找当前的binding context中是否已load了这个assembly
3. 如果FQAN中指定了 Public key token那么查找GAC
4. 如果GAC中没有或者FQAN中没有指定public key token,根据以下规则查找
a. 如果app.config中指定了CodeBase那么,直接在CodeBase下查找该Assembly,找不到则直接绑定失败
b. 如果 FQAN中指定了Culture,且Culture不为Neutual, 查找
[Application Base]\[Culture]\[AssemblyName].dll
[Application Base]\[Culture]\[AssemblyName]\[AssemblyName].dll
[Application Base]\[Culture]\[AssemblyName].exe
[Application Base]\[Culture]\[AssemblyName]\[AssemblyName].exe
c. 如果FQAN中没有指定Culture或Culture为Neutual ,那么查找
[Application Base]\[AssemblyName].dll
[Application Base]\[AssemblyName]\[AssemblyName].dll
[Application Base]\[AssemblyName].exe
[Application Base]\[AssemblyName]\[AssemblyName].exe
d. 如果app.config中或通过AppendPrivateBinPath方法指定了Private bin path,依次查找PrivateBin path, 先查找用AppendPrivateBinPath方法指定的路径。
e. 如果使用Assembly.LoadFrom方法或在COM Interop中创建一个.NET开发的COM组件中,查找
[Calling Assembly CodeBase]\[AssemblyName].dll
[Calling Assembly CodeBase]\[AssemblyName]\[AssemblyName].dll
[Calling Assembly CodeBase]\[AssemblyName].exe
[Calling Assembly CodeBase]\[AssemblyName]\[AssemblyName].exe
f. 调用Windows Installer的方法请求某个assembly, 实现Install on demand
a. app.config :
b. publisher policy file:
c. machine.config:
第一步结束,我们已经根据Calling AssemblyManifest中的Referenced Assembly 和配置文件中得到了一个Full Qualified Assembly Name
2. 根据第一步得到的FQAN查找当前的binding context中是否已load了这个assembly
3. 如果FQAN中指定了 Public key token那么查找GAC
4. 如果GAC中没有或者FQAN中没有指定public key token,根据以下规则查找
a. 如果app.config中指定了CodeBase那么,直接在CodeBase下查找该Assembly,找不到则直接绑定失败
b. 如果 FQAN中指定了Culture,且Culture不为Neutual, 查找
[Application Base]\[Culture]\[AssemblyName].dll
[Application Base]\[Culture]\[AssemblyName]\[AssemblyName].dll
[Application Base]\[Culture]\[AssemblyName].exe
[Application Base]\[Culture]\[AssemblyName]\[AssemblyName].exe
c. 如果FQAN中没有指定Culture或Culture为Neutual ,那么查找
[Application Base]\[AssemblyName].dll
[Application Base]\[AssemblyName]\[AssemblyName].dll
[Application Base]\[AssemblyName].exe
[Application Base]\[AssemblyName]\[AssemblyName].exe
d. 如果app.config中或通过AppendPrivateBinPath方法指定了Private bin path,依次查找PrivateBin path, 先查找用AppendPrivateBinPath方法指定的路径。
e. 如果使用Assembly.LoadFrom方法或在COM Interop中创建一个.NET开发的COM组件中,查找
[Calling Assembly CodeBase]\[AssemblyName].dll
[Calling Assembly CodeBase]\[AssemblyName]\[AssemblyName].dll
[Calling Assembly CodeBase]\[AssemblyName].exe
[Calling Assembly CodeBase]\[AssemblyName]\[AssemblyName].exe
f. 调用Windows Installer的方法请求某个assembly, 实现Install on demand