2008-10-13 20 views
4

對涉及引用Microsoft.SharePoint.dll的一個VS2005項目時,建設項目導致Microsoft.SharePoint.Search.dll被複制到我的bin文件夾。爲什麼是這樣?好吧,也許這只是一個錯誤,但我想知道這個機制。爲什麼Microsoft.SharePoint.Search.dll在我的項目複製?

[編輯:複製本地最肯定關閉 - Microsoft.SharePoint.dll的是不可複製的。 Microsoft.SharePoint.Search.dll是不是在GAC,但它不會有問題,如果它是。]

回答

1

什麼工作對我來說是

  • 到和Microsoft.SharePoint程序Microsoft.SharePoint.Search(即使你不需要它)添加引用
  • 集複製本地爲false兩個引用。

當您構建項目時,它們都不會被複制到debug/release /任何目錄。

+0

不開玩笑?我會檢查出來並接受它是否有效。謝謝。 – Hafthor 2009-06-14 07:00:02

0

你嘗試關閉在屬性「複製本地」爲參考Microsoft.SharePoint.dll的?

0

可能是因爲它不是在GAC,因爲這是在GAC其他文件不會複製那裏。

0

它可能是一個依賴,並且已經複製本地啓用。

我會保持副本雖然本地啓用,因爲它確實簡化了部署痛苦。

+0

我不同意複製本地對MS程序集來說是一個好的舉動。如果修補程序已部署到服務器並且您的解決方案正在引用(並複製)未修補的版本,會怎麼樣?混亂! – 2008-10-14 13:48:58

3
  • 這不是在GAC
  • 它正在使用您引用的組件之一(我想引用Microsoft.SharePoint.dll的話)
  • 既然你不引用它,你不能設置本地複製到FALSE據我所知
  • 我改變了構建/部署腳本直接刪除。
+0

奇怪的是,當您的答案與所發生的事情最接近時,您就會投票表決。我已經提高了它,但我想明白爲什麼會發生這種情況。它不能僅僅是被引用的引用引起復制......這在其他地方沒有發生AFAIK。 – Hafthor 2008-10-13 21:36:29

0

如果計算機(主機),在那裏你正建立一個組件是在x64架構和你有安裝SharePoint x64版本(設置爲這些組件的參考文獻)在「添加引用」將設置複製本地假。

因此,如果大會AMD64和你有「任何CPU」集,然後「添加引用」集的複製本地=真正的,不管。如果將其更改爲false,但你引用從另一個項目也有它的目標設置爲任何CPU或NOT 64,則參考獲取的複製通過,以及。

看看需要在這個環節一custominzing的MSBuild的:How do I override CopyLocal (Private) setting for references in .NET from MSBUILD

0

好吧,我只是想補充的答案有這樣的解釋:

1)在我的項目,我不得不引用: Microsoft.SharePoint程序 Microsoft.SharePoint.Publishing

2)在x64虛擬苔當我編譯我的項目2007服務器,我得到了下面的文件添加到我的斌/調試: ssocli.dll, 微軟。分享Point.Portal.SingleSignon.dll, Microsoft.SharePoint.Search.dll, 微軟。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

相關問題