1)首先要将system.enterpriseservices加上强名处理。
参考Microsoft KB。
对于C#程序,处理如下:
在引用system.enterpriseservices的项目属性页中,在通用属性/常规中的ActiveX/Com对象的包装程序集中的包装程序集密钥文件(名称)中填入相应的内容,如:EnterpriseLibrary.snk(或EnterpriseLibaryContainer)
2)为所有的enterprise library的assembly加上强名处理。
a) 在\src 目录用命令 sn –k EnterpriseLibrary.snk创建一个强名文件。
b) 创建bat文件,内容为sn -i EnterpriseLibrary.snk EnterpriseLibaryContainer,再运行。
c) 在项目中有一个GlobalAssemblyInfo.cs 文件,在该文件中加入[assembly : AssemblyKeyName ("EnterpriseLibaryContainer")],注意是AssemblyKeyName,而不是AssemblyKeyFile。
3)为预防在asp.net应用程序中使用Microsoft.Practices.EnterpriseLibrary.Common出错,必须将Enterprise Library中的Common的项目属性中的配置属性/生成/条件编译常数的Release或ReleaseFinal版本中只保留Trace常数,其余去掉。
4)重新编译Enterprise Library。
5)复制编译的dll文件至一个目录,也可保留在原有目录下。
6)编写install_to_gac.bat文件,其中的binDir即为Enterprise Library的bin目录,内容如下:
set binDir=.\bin
set utilDir=%windir%\Microsoft.NET\Framework\v1.1.4322
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Database.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Database.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Database.Authentication.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Database.Authentication.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.ActiveDirectory.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Security.ActiveDirectory.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Logging.Sinks.Database.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Logging.Sinks.Database.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Logging.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Data.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Data.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Configuration.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Common.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Caching.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Caching.Database.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Caching.Database.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Caching.Cryptography.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Caching.Cryptography.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.Design.dll"
%utilDir%\gacutil /i "%binDir%\Interop.MSDASC.dll"
7)执行install_to_gac.bat。
这样所有的Enterprise Library就安装到GAC中,且可以正确地用于Asp.net和windows应用程序。
浙公网安备 33010602011771号