无法加载程序集'Telerik.Web.UI,Version = xxxx,Culture = neutral,PublicKeyToken = xxxx'

时间:2011-12-29 09:46:36

标签: asp.net visual-studio deployment reference assemblies

问:

只有当我从生产服务器上试用我的网站时才会遇到以下问题。

在当地,每件事都没问题。

  

装配加载跟踪:以下信息可能对您有所帮助   确定装配的原因'Telerik.Web.UI,Version = 2011.2.712.35,   Culture = neutral,PublicKeyToken = 121fae78165ba3d4'无法加载。

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

注意:如果我将Telerik dll粘贴到bin文件夹中,问题就解决了。

但我想知道原因,以及解决此问题的任何方法,而无需将dll复制并粘贴到bin文件夹中。

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,请尝试在项目中包含此文件作为参考,因此每次进行部署时,默认情况下都会将其包含在bin文件夹中。

这是为了避免每次部署时都复制文件。

请告诉我这是否适合您的问题。

更新:根据您的评论,请查看我的附件图片,并按照以下说明操作。 enter image description here

1-打开“参考”并选择“telerik”Dll

2-右键单击它并选择“属性”,或者只需按“F4”。

3-检查选项“复制本地”是否为 True ,如果没有,则进行更改。

4-进行另一次部署,现在它假设将所需的Dll复制到bin文件夹中。

5-拉开一个大大的笑容,问题消失了!! :)

让我知道这是否正确解决了您的问题,谢谢

答案 1 :(得分:1)

如果要在不包含Telerik DLL的情况下发布站点,主机服务器必须将Telerik ASP.NET AJAX库安装到GAC中。如果您拥有服务器或具有专用访问权限,则没有问题。只需在生产服务器上运行Telerik安装程序即可完成设置(它会将适当的程序集添加到GAC)。

如果您不拥有服务器,例如您使用共享主机服务的方案,则需要在bin文件夹中包含Telerik DLL。原因是,共享主机可能不允许您将程序集安装到GAC中,即使他们这样做,Telerik的许可也可能不包含此内容。

要确保您的构建始终具有Telerik DLL,请转到您的解决方案,引用,选择Telerik引用,并将其更改为Copy Local = true