C#无法加载文件或程序集“Microsoft.SharePoint.Library”

我正在开发64位版本的Windows 7,运行MOSS(SharePoint),这是我的开发机器。

现在,当我将我的Web服务应用程序部署到测试服务器Windows 2003 32bit(没有安装Sharepoint)时,我收到此错误。

无法加载文件或程序集“Microsoft.SharePoint.Library,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c”或其中一个依赖项。 该系统找不到指定的文件

该DLL已被清楚地复制到bin目录(Microsoft.Sharepoint.dll)。

有任何想法吗?

如果您使用的是sharepoint dll,它只能在安装了sharepoint的计算机上运行。

即使你设法破解它并使其工作,你可能会违反许可协议。

有一种方法可以在Windows XP,Vista或Seven的开发控制台中加载Sharepoint库。

见这里: http : //fernandof.wordpress.com/2008/02/11/how-to-install-the-sharepoint-2007-vs-2005-extensions-on-a-workstation/

[O]写下regedit并创建以下键和​​字符串值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0] "Sharepoint"="Installed" 

而已! 你已经欺骗了安装程序在工作站上运行。 简单。 我还建议使用gacutil将核心SharePoint程序集添加到[GAC]中。 默认情况下,可以在文件夹下的任何[SharePoint]计算机中找到这些程序集: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI

这几乎肯定是依赖性问题。 DLL依赖于另一个不在GAC或探测路径上的DLL。 您需要解决的两个工具是FUSLOGVW.EXE和Process Monitor

Fusion Log查看器允许您在应用程序加载时查看程序集绑定的成功和失败。 它是Windows SDK的一部分。

http://msdn.microsoft.com/en-us/library/e74a18c4(VS.71).aspx

FUSLOGVW需要admin privs才能正常运行。

如果这不起作用,另一种策略是使用进程监视器来查看哪些文件未加载以及正在搜索哪些文件夹。

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

然而。 如果没有安装SharePoint,我不希望这个工作。

阿德

来自MSDN:“Training Management应用程序的CI构建环境不执行任何需要SharePoint实时实例的测试。所有unit testing都使用替换实际SharePoint实例和服务的模拟。构建代码并仅运行unit testing要求在CI构建服务器上安装以下SharePoint程序集:

Microsoft.SharePoint程序

Microsoft.SharePoint.Security

Microsoft.SharePoint.WorkflowActions

支持引用的程序集“

http://msdn.microsoft.com/en-us/library/ff647619.aspx

不要将64位和32位混合用于开发/测试/生产。 如果有的话,这将无法可靠地工作。

那么Sharepoint dll引用的其他dll呢? 对于长依赖链,诊断这些问题可能非常困难。 在这种情况下,我发现融合日志查看器非常有用。 它是框架SDK的一部分 – 打开SDK命令提示符并键入fuslogvw。 从那里很明显