2009-10-01 77 views
3

我正在开发64位版本的Windows 7,运行MOSS(SharePoint),这是我的开发机器。C#无法加载文件或程序集'Microsoft.SharePoint.Library'

现在,当我将我的web服务应用程序部署到测试服务器Windows 2003 32位(未安装Sharepoint)时,出现此错误。

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

该DLL显然已被复制到bin目录(Microsoft.Sharepoint.dll)。

任何想法?

+2

的(无共享点安装)是关键。某处您引用SharePoint DLL,并且它不存在于没有SharePoint的服务器上。 我的主要问题是如何在客户端操作系统上安装MOSS - 我认为这是不可能的。 – 2009-10-01 19:00:43

+0

@Harper - 阅读本文 - http://readmystuff.wordpress.com/2009/09/05/how-to-get-sharepoint-2007-to-run-under-windows-7/ – 2009-10-01 19:01:47

+0

为什么你不安装您的测试服务器上的SharePoint? – TJMonk15 2009-10-01 20:22:13

回答

6

如果您使用sharepoint DLL的,它只会在安装了SharePoint的机器上工作。

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

+1

你对此有多确定? – 2009-10-01 19:30:45

+3

@JL:我想*非常确定*。 SharePoint不完全是免费软件,我无法想象MS会欣赏它的部分内容在另一个应用程序中使用。 – NotMe 2009-10-01 20:05:47

+1

人们实际使用的大多数Sharepoint只是WSS。免费提供Windows服务器许可证。 – 2009-10-05 01:57:56

0

不要为开发/测试/生产混合使用64位和32位。如果有的话,这将永远不可靠。

+0

对于这一点+1,因为在SharePoint中你想尝试最小化环境差异,但是在传统的.net开发中,以我的经验来说,它不是一个巨大的问题,因为你可以使用ANY CPU构建模型进行输出。 – 2009-10-02 07:36:49

+0

@Chris:我已经做了近一年的网页部件,事件接收器等......你发现了什么问题? – 2009-10-02 09:18:36

0

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

1

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

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

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

FUSLOGVW需要管理员PRIVS才能正确运行。

如果这不起作用,另一种策略是使用Process monitor来查看哪些文件没有被加载以及正在搜索哪些文件夹。

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

不过。没有安装SharePoint,我不希望这个工作。

Ade

+0

+1以获取此工具的新知识。但我认为这个问题,正如你也怀疑的那样,MOSS必须安装 – 2009-10-02 07:37:49

5

有一种方法可以在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]笔在注册表编辑器,并创建下列注册表项和字符串值:

[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

1

从MSDN: “为培训管理中的应用CI构建环境不执行要求的SharePoint的现场实例的任何测试,所有的单元测试使用模拟,从而代替实际SharePoint实例和服务建设。代码和运行单元测试只要求以下SharePoint组件被安装在CI生成服务器上:

Microsoft.SharePoint程序

Microsoft.SharePoint.Security

中号icrosoft.SharePoint.WorkflowActions

支持引用的程序集”

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

相关问题