文档章节

.NET指定运行时查找程序集的位置

KavenSu
 KavenSu
发布于 2015/01/06 11:38
字数 564
阅读 81
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

有两种方法用来指定程序集的位置:

  • 使用 <codeBase> 元素。

  • 使用 <probing> 元素。

还可以使用 .NET Framework 配置工具 (Mscorcfg.msc) 来指定程序集位置或者为公共语言运行库指定要探测程序集的位置。

使用 <codeBase> 元素

只有在计算机配置文件或也重定向程序集版本的发行者策略文件中,才可以使用 <codeBase> 元素。在运行库确定要使用哪一程序集版本时,它应用确定版本的文件中的基本代码设置。如果未指出基本代码,那么运行库就以通常的方法探测程序集。有关详细信息,请参见运行库如何定位程序集

下面的示例说明如何指定程序集的位置。

<configuration>   <runtime>      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">       <dependentAssembly>         <assemblyIdentity name="myAssembly"                           publicKeyToken="32ab4ba45e0a69a1"                           culture="en-us" />         <codeBase version="2.0.0.0"                   href="http://www.litwareinc.com/myAssembly.dll"/>       </dependentAssembly>      </assemblyBinding>   </runtime></configuration>

对于所有具有强名称的程序集,要求 version 属性,但对于不具有强名称的程序集应省略。<codeBase> 元素要求 href 属性。在 <codeBase> 元素中不能指定版本范围。

Note注意

如果为不具有强名称的程序集提供基本代码提示,那么该提示必须指向应用程序基或该应用程序基目录的子目录。

使用 <probing> 元素

运行库通过探测的方法来查找没有基本代码的程序集。有关探测的更多信息,请参见运行库如何定位程序集

可以在应用程序配置文件中使用 <probing> 元素,来指定在查找程序集时运行库应搜索的子目录。下面的示例说明如何指定运行库应搜索的目录。

<configuration>   <runtime>      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">         <probing privatePath="bin;bin2\subbin;bin3"/>      </assemblyBinding>   </runtime></configuration>

privatePath 属性包含运行库应在其中搜索程序集的目录。如果应用程序位于 C:\Program Files\MyApp,那么运行库将在 C:\Program Files\MyApp\Bin、C:\Program Files\MyApp\Bin2\Subbin 和 C:\Program Files\MyApp\Bin3 中查找未指定基本代码的程序集。privatePath 中指定的目录必须是应用程序基目录的子目录。

© 著作权归作者所有

KavenSu
粉丝 6
博文 66
码字总数 16605
作品 0
深圳
私信 提问
linux动态链接库的加载顺序

一. Linux 动态库选择顺序指: 1. 编译程序时用到动态库,该从那些地方查找,按照怎么样的顺序查找? 2. 运行程序时需要动态库,该从那些地方查找,按照怎么样的顺序查找? 二. gcc 编译程序...

byxdaz
04/19
0
0
[连载]《C#通讯(串口和网络)框架的设计与实现》- 9.插件引擎设计

目 录 第九章 插件引擎设计... 2 9.1 框架的契约-接口... 2 9.2 插件的雏形-抽象类... 3 9.3 实现接口... 4 9.4 反射机制... 5 9.5 反射工具类... 8 9.6 小结... 9 第九章 插件引擎设计 在介...

唯笑志在
2015/12/02
0
0
动态库的链接和链接选项-L,-rpath-link,-rpath

链接动态库 如何程序在连接时使用了共享库,就必须在运行的时候能够找到共享库的位置。linux的可执行程序在执行的时候默认是先搜索/lib和/usr/lib这两个目录,然后按照/etc/ld.so.conf里面的...

水海云
2013/03/22
24.1K
0
c#中的反射机制

反射的概述: 反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义...

云栖希望。
2017/12/04
0
0
在macOS系统中 下载、安装、使用Java8

文 | 莫若吻 目录.png 1.下载jdk8 1)官网下载地址 Java8下载官网地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 注:以下内容基于macOS系统...

莫若吻
2017/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

类比思想歪解Java线程

在操作系统的概念里,有内核态,用户态。其实,操作系统的最小执行单位是进程,而进程是分类型的,有两种类型,内核进程,用户进程。 内核进程由操作系统启动时创建,用户进程是由用户程序启...

萧默
50分钟前
2
0
Git推送错误“ [[远程拒绝]主机->主机(分支当前已签出)”)

昨天,我发布了一个有关如何将Git存储库从我的一台计算机克隆到另一台计算机的问题 , 如何从另一台计算机“ git clone”? 。 现在,我可以成功地将Git存储库从源(192.168.1.2)克隆到目标...

javail
今天
4
0
Selenium 4.0 Alpha更新日志

早在2018年8月,整个测试自动化社区就发生了一件重大新闻:Selenium的创始成员Simon Stewart在班加罗尔Selenium会议上正式确认了Selenium 4的发布日期和一些重要更新。 Selenium 4.0 Alpha版...

八音弦
今天
7
0
2、编写程序求Sn=a+aa+aaa+…+aa…aa的值,其中a是1—9之间的一位数字,n表示 a的位数

//编写程序求Sn=a+aa+aaa+…+aa…aa的值,其中a是1-9之间的一位数字, //n表示 a的位数 #include<stdio.h> int main() { int a,n,i,Sn=0,Z=0; printf("please intput a:\n"); scanf("%d",&a......

201905021729吴建森
今天
5
0
Git中的HEAD是什么?

您会看到Git文档说出类似 分支必须在HEAD中完全合并。 但是到底什么是Git HEAD ? #1楼 了解正确答案的一种好方法是运行git reflog HEAD ,您可以获得HEAD所指向的所有位置的历史记录。 #2楼...

技术盛宴
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部