2014-05-22 73 views
0

我正在使用GAC共享dll。無法將GAC用於EnterpriseLibrary.Data

在這裏,我有一個應用程序使用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 woth別人的DLL和它的確定,當我去到C:\ WINDOWS \總成,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

*你的意思是* app運行不正確*? –

+0

當我嘗試使用此DLL的方法時發生異常。如果我在應用程序的文件夾中添加此DLL,所有工作正常無例外! – clement

+0

好,後期異常類型,消息,堆棧跟蹤等 –

回答

1

根據您使用的.NET版本,GAC可能不在C:\Windows\Assembly中。
對於.NET 4,GAC位於%windir%\Microsoft.NET\assembly\
通常,如果您想了解.NET應用程序未找到程序集的原因,則應使用Assembly Binding Log Viewer工具(VS命令提示符中的fuslogvw.exe)。

編輯:看到您的評論後,它可能是它不是你的應用程序直接試圖加載失敗的程序集,但也許還有一些其他的DLL。使用程序集綁定日誌查看器工具來確定什麼是失敗和原因。此外,如果您提供了有關應用程序失敗的更多詳細信息(錯誤消息,堆棧跟蹤...),那麼會更好一些。(錯誤消息,堆棧跟蹤...)

+0

好的,謝謝,我該如何在propper GAC中安裝應用程序?我嘗試使用相同的命令將5個以上的其他DLL放在GAC上,當我刪除這些DLL時,它工作正常 – clement

+0

@clement:要將dll安裝在正確的GAC中,在安裝了VS的計算機上,您必須使用正確版本的gacutil。 –

+0

謝謝!當我運行Assembly Binding Lov Viewer時,我看不到任何應用程序..我的應用程序是Windows服務... – clement