.NET 4.0应用程序没有从GAC中提取DLL

时间:2012-11-26 16:31:01

标签: .net gac

我有一个v4.0程序集,它在GAC(4.0位置)中供运行时使用,在磁盘上的某个位置供设计时使用。我在注册表中设置了设计时DLL的位置,以便我可以通过Visual Studio中的“添加引用”添加它。

我也有一个使用此DLL的服务。我通过添加引用添加它,并且可以在引用其类时进行编译而没有问题。但是,当我运行我的服务时,它不会从GAC中提取DLL,并且我收到错误,该服务无法在GACked DLL中找到类。我可以将“copy local”更改为true并且它可以正常工作,但这会破坏在GAC中使用DLL的目的。

有关如何进行问题排查的任何建议?


我可以添加对新控制台应用程序的引用并访问该对象。不确定服务的问题是什么。


它可能找不到类型..但我可以从控制台应用程序引用该类型(使用GACked程序集),所以我不确定为什么它在运行服务时找不到它。

1 个答案:

答案 0 :(得分:3)

您需要在machine.config

中的system.web标记下添加程序集
<system.web>
    <compilation>
        <assemblies>
            <add assembly="YOUR_DLL_NAME, Version=1.1.0.0, Culture=neutral, PublicKeyToken=YOUR_KEY_TOKEN" />  
        </assemblies>
    </compilation>
</system.web>

根据您的设置,可以找到配置文件: C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中 要么 C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \配置\ machine.config中