我正在使用GAC分享dll&#39。s。
在这里,我有一个使用Microsoft.Practices.EnterpriseLibrary.Data.dll 5.0.414.0的应用程序。如果我把它放在与.exe相同的文件夹上,一切都没问题,但是当我想将它从这个文件夹中删除时,即使我把它安装在GAC上也没有用...
由于
,我已将其安装在GAC上D:\Applications\Services\App>GACUTIL.exe -i Microsoft.Practices.EnterpriseLibrary.Data.dll
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly successfully added to the cache
当我从此文件夹中删除此dll时,应用程序无法正常运行,为什么?
我尝试了GAC,其他人也没问题,而且当我转到C:\ WINDOWS \ assembly时,dll看起来已经安装了!
我已经重新尝试使用之前向您展示的CLI安装它。
修改
类型:
Exception type:
Microsoft.Practices.ServiceLocation.ActivationException, Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
消息:
Activation error occured while trying to get instance of type LogWriter, key ""
堆栈:
Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)
Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance[TService]()
Microsoft.Practices.EnterpriseLibrary.Logging.Logger.get_Writer()
MyFramework.Logging.MyLogger.WriteVerbose(String applicationName, String title, String logText)
MyApp.Fleet_Service.GetInfo(Int32 accountid, String[] msisdns, DateTime from, DateTime to) in c:\Clients\Project\V1\Fleet_Service.cs:line 111
SyncInvokeGetInfo(Object , Object[] , Object[] )
感谢帮助我
答案 0 :(得分:1)
根据您使用的.NET版本,GAC可能不在C:\Windows\Assembly
对于.NET 4,GAC位于%windir%\Microsoft.NET\assembly\
通常,如果要了解.NET应用程序找不到程序集的原因,则应使用Assembly Binding Log Viewer工具(VS命令提示符下的fuslogvw.exe)。
编辑:看到你的评论后,可能是你的应用程序没有直接尝试加载失败的程序集,但可能还有其他一些dll。使用程序集绑定日志查看器工具确定失败的原因和原因。此外,如果您提供有关应用程序失败的更多详细信息(错误消息,堆栈跟踪......),那会更好。