当我执行简单的SharePoint 2010客户端编码时,我得到的是我认为虚假的“找不到文件”错误。 不我正在构建错误的CPU类型或错误的.NET版本。 (我正在构建“任何CPU”或“x64”和.NET 3.5。)我从服务器复制了Microsoft.SharePoint * .dll并将它们放在C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server中扩展\ 14 \ ISAPI。 (我也尝试了其他文件夹。)然后我打开了我的Visual Studio 2010项目,右键单击了References,单击了Browse选项卡并添加了一个或所有dll(我应该只需要Microsoft.SharePoint.dll。)是我尝试运行的简单程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace SPListsToConsole {
class Program {
static void Main( string[] args ) {
using ( SPSite sc = new SPSite( "http://orsandbox01/SitePages/Home.aspx" ) ) {
SPWeb site = sc.RootWeb;
foreach ( SPList list in site.Lists ) {
if ( !list.Hidden ) {
Console.WriteLine( list.Title );
}
}
}
}
}
}
这是我得到的错误:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified. File name: 'Microsoft.SharePoint.Library, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' at SPListsToConsole.Program.Main(String[] args) WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
之前我没有进行过任何SharePoint编码,但我遵循了Google可以执行的所有说明。 TIA提供您可以分享的任何帮助。
答案 0 :(得分:2)
事实证明你不能做我想做的事。您必须在开发的计算机上安装SharePoint。
答案 1 :(得分:2)
如果需要使用远程sharepoint服务器,则可以使用Web服务而不是对象模型。
假设您已添加对列表webservice(/_ vti_bin/lists.asmx)的引用,并将其命名为“Lists”,您可以获得这样的可见列表列表:
Lists.Lists proxy = new Lists.Lists();
// Use logged on users credentials to authenticate with SharePoint
proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
XmlNode listCollection = proxy.GetListCollection();
foreach (XmlNode node in listCollection.ChildNodes)
{
bool hidden = bool.Parse(node.Attributes["Hidden"].Value);
if (!hidden)
{
Console.WriteLine(node.Attributes["Title"].Value);
}
}
您可以在此处找到有关列表Web服务的更多详细信息: http://msdn.microsoft.com/en-us/library/lists.lists_methods.aspx
使用Web服务也可以实现对象模型代码所能完成的大部分工作。
在VS2010中添加Web引用:
右键单击解决方案资源管理器中的项目节点,然后选择添加服务参考
在添加服务参考对话框中,点击高级...
在服务参考设置对话框中,点击添加网络参考...
在添加网络参考对话框中:
一个。对于 Url ,请输入网站集网址,然后输入 _vti_bin / lists.asmx 。例如: http://sharepoint/sites/mySiteCollection/_vti_bin/lists.asmx
湾对于 Web引用名称,请输入列表
℃。点击添加参考
现在将引用添加到项目中,您可以使用上面的代码来访问它。
要从子站点获取列表,请通过将 _vti_bin / lists.asmx 添加到子站点的URL来更改服务URL属性以指向该子站点的Web服务,如上所述。