.NET配置引用程序集的路径(分离exe和dll)

按照引用程序集路径的不同,程序集DLL分为两类:

1)全局DLL(在GAC中注册,GAC——全局程序集缓存),有关GAC的详细资料可以参考一下链接:

http://dddspace.com/2011/01/gac.html

http://baike.baidu.com/view/405773.htm

http://www.cnblogs.com/chenlulouis/archive/2010/06/30/1768176.html

2)私有DLL,默认情况下,添加程序集引用的时候,程序集DLL会复制到可执行目录下。

对于私有DLL,当数目众多时,由于没有分类,会显得比较凌乱。在发布软件的时候也不希望在软件安装目录下看到大量的dll文件。如果能将其分类放在不同的文件夹下就再好不过了。

问题是,如何解决应用程序对DLL的查找路径问题呢?答案是在配置文件中添加如下配置项。

<configuration>

<runtime>

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

<publisherPolicy apply="yes"/>

<probing privatePath="Common;Security"/>

</assemblyBinding>

</runtime>

</configuration>

其中privatePath是相对于*.exe.config文件的相对路径,多个文件夹以分号分隔。

添加程序集DLL引用之后,将DLL的属性“复制本地”设置为False。程序编译过程中,会自动检索Common和Security文件夹下的DLL及其依赖项。

原文地址:https://www.cnblogs.com/wang_xy/p/12050635.html

时间: 2024-10-08 00:35:42

.NET配置引用程序集的路径(分离exe和dll)的相关文章

设置程序PrivatePath,配置引用程序集的路径(分离exe和dll)

原文:设置程序PrivatePath,配置引用程序集的路径(分离exe和dll) 有时候我们想让程序的exe文件和dll文件分开在不同目录,这时候可以有3种方法 1.在app.config中配置 [html]?view plain?copy <runtime>?? ????<gcConcurrent?enabled="true"?/>?? ????<assemblyBinding?xmlns="urn:schemas-microsoft-com:

C#程序集系列06,程序集清单,EXE和DLL的区别

CLR在加载程序集的时候会查看程序集清单,程序集清单包含哪些内容呢?可执行文件和程序集有什么区别/ 程序集清单 □ 查看程序集清单 →清空F盘as文件夹中的所有内容→创建MainClass.cs文件→把MainClass.cs编译成程序集→反编译MyDll.dll,在1.txt文件中呈现 ildasm /out:1.txt MyDll.dll →打开1.txt文件 1.txt // Metadata version: v4.0.30319 .assembly extern mscorlib {

Visual Studio .NET程序集输出路径配置

这几天琢磨.NET下的开源界面框架Fluent.Ribbon的时候发现人家编译后的输出文件都集中在一个Build文件夹中,以前倒是指定过编译生成的最终程序集的路径,但是编译器生成的中间文件始终在工程文件夹下的obj文件夹当中,工程属性能改的就那么几个.刚开始猜想肯定是.csproj文件里面有文章,既然这个文件本来就是一个基于XML标准的文件,那咱就以文本形式打开瞧瞧.和Fluent.Ribbon的.csproj文件一对比,果然有所发现.人家在第一个<PropertyGroup>…</Pr

.Net 程序集 签名工具sn.exe 密钥对SNK文件

.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法 (本文是从别人那里转来的,感觉说得很好就留了.感谢原作者!) .Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法 阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集进行反编译一毛钱关系都没有. 2.它很讨厌人们把它和加密联系在一起. 我再说说它是什么: 1.起个大名字 sn是strong name的缩写,正如其名,sn.exe的

生成 (web): 找不到目标 .NET Framework 版本的引用程序集;请确保已安装这些程序集或选择有效的目标版本。

刚刚还好好的,不知道修改什么了,突然出现如下错误: Default.aspx(36): 生成 (web): 找不到目标 .NET Framework 版本的引用程序集:请确保已安装这些程序集或选择有效的目标版本. 查看第36行,有一个aspx的web控件,后面的错误也是这样的. 重装了一下.net framework也不行. 将代码原封不动拷到另外一台机器就没问题了,不知道是什么情况?

Android Studio 配置模拟器AVD存放路径(默认在c盘,解决c盘空间不够问题)

转自原文Android Studio 配置模拟器AVD存放路径(默认在c盘,解决c盘空间不够问题) Android Studio 安装之后,默认的会给我们创建一个 Nexus 的模拟器, 这个模拟器的镜像文件放在了 C:\Users\Administrator\.android  中 其中的avd文件夹就是用来存放,模拟器镜像文件的. 相当占用c盘空间,像我这种c盘空间不大的,看着真的不爽. 好了现在点进去C:\Users\Administrator\.android\avd 现在  你只需要将

Spring MVC 搭建过程中web.xml配置引入文件的路径问题

为啥要说一下这么low的问题,因为我是一个比较low的人,哈哈.本来我技术有限,没事干自己撘个环境找找乐趣,结果被各种基础问题,弄的一脸蒙蔽.算了不多说,直接说问题. 1.首先说一下java编译后的文件,正常来说我们编写的文件一般都是java文件,但实际上eclipse会帮我们编译成.class文件(在project下有个自动编译),没有编译的话,Project->Build Project 来编译当前的项目 2.上面说的都是很简单的事情,但是简单的再延伸,就可能出一点问题了,重申一下,我比较l

CXF spring配置引用标签

<!--java webservice CXF spring配置引用标签--> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:jaxws=&

Nginx系列-8.配置Nginx+Apache实现动静分离

Nginx系列-8.配置Nginx+Apache实现动静分离 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置