Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 具有引用DLL的可视Web部件未检查GAC_Sharepoint_Web Parts_Gac - Fatal编程技术网

Sharepoint 具有引用DLL的可视Web部件未检查GAC

Sharepoint 具有引用DLL的可视Web部件未检查GAC,sharepoint,web-parts,gac,Sharepoint,Web Parts,Gac,我有一个带有可视web部件的SharePoint项目(WebPartA继承自OtherWebPartC)-web部件引用两个DLL(ClassLibraryB和OtherWebPartC),它们包含在包中,设置为部署到GAC 部署项目时,DLL成功部署到GAC,web部件成功显示在SharePoint的库中 但是,当我尝试将可视web部件(WebPartA)添加到页面时,页面会中断—我启用了错误显示和堆栈跟踪—它表示找不到ClassLibraryB.dll。我使用fuslogvw和procmon

我有一个带有可视web部件的SharePoint项目(WebPartA继承自OtherWebPartC)-web部件引用两个DLL(ClassLibraryB和OtherWebPartC),它们包含在包中,设置为部署到GAC

部署项目时,DLL成功部署到GAC,web部件成功显示在SharePoint的库中

但是,当我尝试将可视web部件(WebPartA)添加到页面时,页面会中断—我启用了错误显示和堆栈跟踪—它表示找不到ClassLibraryB.dll。我使用fuslogvw和procmon确定它正试图从典型位置(虚拟目录/bin、临时asp.net文件夹)加载DLL,即使DLL不在这些位置(但正如我所说,它已成功部署到GAC)

因此,我手动将ClassLibraryB.dll和其他webpart.dll添加到虚拟目录/bin中,并成功运行

如何让SharePoint在GAC中查看ClassLibraryB.dll和其他WebPart.dll?或者我必须手动将DLL部署到站点的虚拟目录/bin吗?

尝试:

  • 将Web部件/程序集部署目标更改为“WebApplication”(而不是GAC)

  • 收回溶液并从GAC中移除相应组件

  • 重新生成解决方案并将其与程序集一起重新部署到SharePoint Bin文件夹(选定的“WebApplication”部署目标)


是否将所有必需的程序集复制到Bin文件夹?解决方案在这种情况下有效吗?

您是否确认您的程序集位于GAC中(而不仅仅是您的解决方案已部署)?你是如何引用程序集的?是的-我已经确认程序集在GAC中-我引用了项目中的DLL,并已将它们添加到项目中的包中。引用是在代码隐藏中使用还是在页面/控件上使用@Register?请确保部署到GAC的程序集已签名且具有强名称。是的,它们已签名且具有强名称