为什么在我的项目中复制了Microsoft.SharePoint.Search.dll?

时间:2008-10-13 17:34:28

标签: sharepoint visual-studio-2005

在处理涉及引用Microsoft.SharePoint.dll的VS2005项目时,构建项目会导致Microsoft.SharePoint.Search.dll被复制到我的bin文件夹。为什么是这样?好吧,也许这只是一个bug,但我想知道这个机制。

[编辑:绝对关闭本地复制 - 不复制Microsoft.SharePoint.dll。 Microsoft.SharePoint.Search.dll不在GAC中,但如果是,则无关紧要。]

8 个答案:

答案 0 :(得分:3)

  • 它不在GAC中
  • 它被您引用的程序集之一使用(我认为Microsoft.Sharepoint.dll引用它)
  • 由于您没有引用它,因此我无法将Local Copy设置为FALSE(据我所知)
  • 我已将我的构建/部署脚本更改为删除它。

答案 1 :(得分:1)

对我有用的是

  • 添加对Microsoft.SharePoint和Microsoft.SharePoint.Search的引用(即使您不需要它)
  • 为两个引用设置Copy Local为false。

构建项目时,没有一个被复制到debug / release /无论目录。

答案 2 :(得分:0)

您是否尝试关闭属性中的“复制本地”以引用Microsoft.SharePoint.dll?

答案 3 :(得分:0)

可能是因为它不在GAC中,因为GAC中的其他文件不会在那里复制。

答案 4 :(得分:0)

它可能是一个依赖项,你可以复制本地启用。

我会保持复制本地启用,因为它确实减轻了部署的痛苦。

答案 5 :(得分:0)

如果你在编译一个x64架构的程序集的机器(主机),并且你在“添加引用”期间安装了x64版本的SharePoint(引用设置为这些程序集),它将把本地复制设置为false 。

因此,如果程序集是AMD64并且您设置了“Any CPU”,那么“add reference”设置为copy local = true,无论如何。如果将其更改为false,但是然后从另一个项目引用该项目,同时将其目标设置为Any CPU或NOT x64,那么也会复制引用get。

根据需要在此链接中查看MSBuild的自定义:How do I override CopyLocal (Private) setting for references in .NET from MSBUILD

答案 6 :(得分:0)

好的,我只是想通过这个解释添加答案:

1)在我的项目中,我引用了: Microsoft.SharePoint程序 Microsoft.SharePoint.Publishing

2)在我编译项目时,在x64虚拟苔藓2007服务器上,我将以下文件添加到我的bin / debug中: ssocli.dll, Microsoft.SharePoint.Portal.SingleSignon.dll, Microsoft.SharePoint.Search.dll, Microsoft.SharePoint.Search.xml, Microsoft.Office.Server.Search.dll。

有趣的是,我的x86虚拟服务器上没有此问题。

3)所有这些文件都可以在c:\ program files \ Common Files \ Microsoft Shared \ Web Server Extensions \ bin \ ISAPI中找到。

4)根据我在MSDN论坛上找到的答案,引用的dll可能引用或依赖于额外的dll。因此,它们被添加到bin / debug文件夹中。

5)为防止这种情况发生,您可以在项目中引用相关的dll,并将copy local设置为false。

https://social.msdn.microsoft.com/Forums/sharepoint/en-US/192fa94c-b588-401d-8ca8-845c3fe15f60/could-not-load-file-or-assembly-microsoftsharepointsearch-version12000-cultureneutral?forum=sharepointdevelopmentlegacy

答案 7 :(得分:0)

我们的一位客户遇到了此问题,这似乎是由于Visual Studio 2019安装向导的``单个组件''部分中提供了适用于Visual Studio的Office开发人员工具选项所致。

enter image description here

解决方案是取消选中它并卸载插件。因此,在编译项目时,不应将与SharePoint相关的程序集添加到项目中。

我希望这些信息可能对某些人有所帮助。