博文
log4net 的一些常见问题(2011-03-08 21:53:00)
摘要:Log4net 的配置文件应该放在哪里?
· App.config 或 web.config
· 单独的一个xml 文件
· 无配置文件,在程序代码中进行配置
Log4net 的配置文件中是否一定需要 <Logger> tab?
不需要,请看以下的例子:
<log4net>
<!-- 輸出到Console -->
<appender name="A1" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<!-- 輸出訊息等級 -->
<level value="ALL" />
<appender-ref ref="A1" />
</root>
......
如何把共享程序集添加到引用(2011-03-07 23:31:00)
摘要:1. 如何创建强名程序集
可以用VS来产生公钥密钥对文件, Project Properties à Signing
2. 如何查看public key token
可以用命令 sn –T [assembly]
3. 安装共享程序集
只有强名程序集才可以安装到Gac中。可以用命令
gacutil /i [assembly]
4. 卸载共享程序集
可以在C:\Windows\assembly目录下,找到要卸载的程序集,右键单击,然后选择Uninstall.
5. 如何对共享程序集在VS中添加引用
首先运行Start > Run > "C:\windows\assembly\gac_msil".
选择你要找的程序集的文件夹,然后进入该文件夹,再选择正确的版本的文件夹。
找到你要的程序集后,可先将其临时拷贝到一个位置,再把这个拷贝程序集添加到引用中,然后便可以删除这个临时程序集拷贝,因为VS会自动在GAC中搜索该程序集。......
程序集与强命程序集(2011-03-07 23:30:00)
摘要:作者: 王雪鹏
来源:aspcool
1. 程序集(Assembly)的概念:
首先:程序集是一个或多个托管模块,以及一些资源文件的逻辑组合。因为它是一个逻辑上的组合,所以程序集的逻辑表示和物理表示可以相互分离。如何将代码和资源划分到不同的文件中完全取决于我们。程序集允许我们将文件的部署分解开来,同时又将所有的文件看作一个单独的集合。
其次:因为CLR是直接和程序集打交道的,所以程序集也是组件复用,以及实施安全策略和版本策略的最小单元(安全策略,版本信息等都只能是加在程序集上)。
注意:程序集是一个逻辑组合,它可以包含很多个文件。大多数程序集(比如使用Visual Studio创建的那些)一般都是单文件程序集,也就是只有一个.exe或者.dll文件(目前.NET的程序集只有这两种格式)。在这种情况下,程序集清单(manifest)直接嵌入到单文件程序集中。
2. 强命名程序集(Strong Name Assembly)的概念
因为不同的公司可能会开发出有相同名字的程序集来,如果这些程序集都被复制到同一 个相同的目录下,最后一个安装的程序集将会代替前面的程序集。这就是著名的Windows “DLL Hell”出现的原因。
很明显,简单的用文件名来区分程序集是不够的,CLR需要支持某种机制来唯一的标识一个程序集。这就是所谓的强命名程序集。
一个强命名程序集包含四个唯一标志程序集的特性:文件名(没有扩展名),版本号,语言文化信息(如果有的话),公有秘钥。
这些信息存储在程序集的清单(manifest)中。清单包含了程序集的元数据,并嵌入在程序集的某个文件中。
下面的字符串标识了四个不同的程序集文件:
“MyType, Version=1.0.1.0,
&nb......
浅谈公共语言运行库(2011-03-07 23:29:00)
摘要:C#的源代码首先要被编译为Microsoft的中间语言(IL)的代码。这些中间代码也被称为托管代码。它们不是文本代码,而是类似Java源程序被编译后的字节代码。然后使用公共语言运行库(CLR)作为执行环境来执行这些托管代码。这样做的好处有:
(1) 平台无关
只要安装了.Net Framework的平台就可以用CLR来执行中间代码。换句话说,相同的源代码在不同的平台上编译得到的中间代码都是一样的,而不同的平台需要不同的CLR来执行中间代码。当然这个不是绝对的平台无关,不是说就可以把C#的程序拿到Linux中编译运行了。目前主要还是在Windows平台上运行托管代码。也有一些工程致力于把.Net Framework应用到Linux平台中。
(2) 提高性能
托管代码要经过再次编译才能变成机器的本地代码,看起来.Net的程序性能比起直接编译为本地代码的程序运行效率要低,可是实际上,Microsoft采用了一些手段来提高.Net程序的性能。
· 即时编译(JIT编译),也就是运行托管代码时,只编译用到的那部分代码,而不是先把这个托管代码编译好,然后再运行。
· 编译器接合处理器进行编译。以往直接编译为本地代码的编译器,比如Visual Studio 6中的编译器,不会考虑处理器的不同特性。它不知道你使用的是奔腾3还是奔腾4的处理器,而CLR把处理器的特性考虑了进去。也就是说,编译器会对处理器的特定性能进行代码的优化。......
Using log4net(2011-03-07 23:27:00)
摘要:http://ondotnet.com/pub/a/dotnet/2003/06/16/log4net.html?page=3......
