在处理涉及引用Microsoft.SharePoint.dll的VS2005项目时,构建项目会导致Microsoft.SharePoint.Search.dll被复制到我的bin文件夹。为什么是这样?好吧,也许这只是一个bug,但我想知道这个机制。
[编辑:绝对关闭本地复制 - 不复制Microsoft.SharePoint.dll。 Microsoft.SharePoint.Search.dll不在GAC中,但如果是,则无关紧要。]
答案 0 :(得分:3)
答案 1 :(得分:1)
对我有用的是
构建项目时,没有一个被复制到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。
答案 7 :(得分:0)