我有一个v4.0程序集,它在GAC(4.0位置)中供运行时使用,在磁盘上的某个位置供设计时使用。我在注册表中设置了设计时DLL的位置,以便我可以通过Visual Studio中的“添加引用”添加它。
我也有一个使用此DLL的服务。我通过添加引用添加它,并且可以在引用其类时进行编译而没有问题。但是,当我运行我的服务时,它不会从GAC中提取DLL,并且我收到错误,该服务无法在GACked DLL中找到类。我可以将“copy local”更改为true并且它可以正常工作,但这会破坏在GAC中使用DLL的目的。
有关如何进行问题排查的任何建议?
我可以添加对新控制台应用程序的引用并访问该对象。不确定服务的问题是什么。
它可能找不到类型..但我可以从控制台应用程序引用该类型(使用GACked程序集),所以我不确定为什么它在运行服务时找不到它。
答案 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中