1

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

我也有一个使用这个 DLL 的服务。我通过添加引用添加了它,并且在引用它的类时可以毫无问题地编译。但是,当我运行我的服务时,它不会从 GAC 中提取 DLL,并且我收到一个错误,即服务在 GACked DLL 中找不到类。我可以将“本地复制”更改为 true,它会正常工作,但这违背了在 GAC 中拥有 DLL 的目的。

有关如何排除故障的任何建议?


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


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

4

1 回答 1

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\Framework\v4.0.30319\Config\机器配置

于 2012-11-26T17:49:10.047 回答