问题  连接到远程SharePoint(Office 365)并以编程方式添加文档。 DLL的问题

加入
3月30日,2021年
消息
8
编程经验
5-10
你好,

使用Visual Studio 2019。
我需要连接到我们的Office 365 SharePoint站点之一,并有能力通过代码简单地添加文件。

我只连接到远程SharePoint站点,也没有在我的Windows 10 OS上运行的SharePoint服务器。

我的第一步是出错:
连接到SharePoint站点:
        private void button1_Click(object sender, EventArgs e)
        {
            //Retrive sitecollection
            // Get Errors when this runs
            using (SPSite site = new SPSite("//xxxxx.sharepoint.com/sites/sitename"))
            {
                //Open Web
                using (SPWeb web = site.OpenWeb())
                {

                    MessageBox.Show(web.Description, "Title");

                    //get library named "Documents"
                    SPList DocLib = web.Lists["DVBCI"];
                }

            }
        }

从我所看到的,我需要拥有Microsoft.SharePoint DLL,所以我使用了Manage Nuget软件包并安装了:
  • Microsoft.SharePoint,Version = 15.0.0.0,Culture = Neutral,PublicKeyToken = 71E9BCE111E9429C
我构建,运行应用程序,然后单击“我的按钮”并获取以下错误:

system.io.filenotfoundException.
HResult=0x80070002
消息=无法加载文件或程序集Microsoft.SharePoint.Library,Version = 15.0.0.0,Culture = Neutral,PublicKeyToken = 71E9BCE111E9429C'或其依赖项之一。该系统找不到指定的文件。
source = microsoft.sharepoint.
StackTrace:
在Microsoft.SharePoint.Coreresource.getString(ResourceGroup RG,String名称,对象[]值)
在Microsoft.SharePoint.Spsite.Lookupsiteinfo(Spfarm Farm,Boolean ContextSite,Boolean SwapsSitcheMeforPathBasedSites,Uri& requestUri, Boolean&lookuprequiredcontext,guid.& applicationId, Guid&contentDatabaseID,GUID& siteId, Guid&sessubscriptionid,spurlzone.& zone, String&ServerRelativeUrl,Boolean.&Hostheaderissitename,布尔值&AppWebRequest,String.&apphosthearredirectomain,字符串&appsitedomainprefix,string.&SupprocionName,String.&Appsitedomainid,Uri.& primaryUri)
在Microsoft.Sharepoint.spsite..ctor(Spfarm Farm,URI Requesturi,Boolean ContextSite,Boolean SwapschemeforPathBasedSite,Spusertoken Usertoken)
在Microsoft.SharePoint.spsite..ctor(String RequestURL)
在CODVAULTTRANSFER.FORM1.BUTTON1_CLICK(Object Sender,Eventargs E)中的C:\ VS2019 \ repo \ docvaulttransfer \ form1.cs:第2行
在system.windows.forms.control.onclick(eventargs e)
在system.windows.forms.button.onclick(eventargs e)
在system.windows.forms.button.onmouseUp(MouseEventargs Mevent)
在system.windows.forms.control.wmmeouseup(消息&M,MouseButtons按钮,INT32点击)
在system.windows.forms.control.wndproc(消息& m)
在system.windows.forms.buttonbase.wndproc(消息& m)
在system.windows.forms.button.wndproc(消息& m)
在system.Windows.Forms.Control.ControlnativeWindow.onMessage(消息& m)
在System.Windows.Forms.Control.ControlnativeWindow.wndproc(消息& m)
在system.windows.forms.nativewindow.debuggablecallback(Intptr hwnd,int32 msg,intptr wparam,intptr lparam)
在system.windows.forms.unsafenativemethods.dispatchmessagew(msg& msg)
在system.windows.forms.application.componentmanager.system.windows.forms.unsafenativemethods.imsocomponentmanager.fpushmessageloop(intptr dwcomponentid,int32原因,Int32 pvloopdata)
在System.Windows.Forms.Application.ThreadContext.RunMessageLoopinner(Int32原因,ApplicationContext上下文)
在system.windows.forms.application.threadcontext.runmessageloop(int32原因,applicationcontext上下文)
在System.Windows.Forms.Application.Run(表单MainForm)
在CODVAULTRANSFER.PROGROM.MAIN()中C:\ vs2019 \ repo \ docvaulttransfer \ program.cs:第19行

我已经验证了文件,版本和一切。

所以我使用Fuslogvw.exe工具尝试找到程序集没有加载。

所以发现一个名字说它无法找到Microsoft.SharePoint.Security.dll。

然后,我使用Nuget将其下载到解决方案并再次构建/运行。

这次再次失败,但现在说它无法找到Microsoft.SharePoint.Intl。

我再次在尼古特寻找尼古特并找不到这个。

所以在这一点上,我对该怎么做。

我是否必须在本地Dev单元上安装SharePoint本身???

一个...我甚至使用正确的命令来连接到网站并与库一起工作等等。

还有很多其他Nuget SharePoint类型的包,但现在我只是猜测可能需要的内容。

在此先感谢您的帮助!
 
Solution
有一个主要问题。您使用的代码有关On-Premise SharePoint,预计将在SharePoint Server本身上运行。您不能与SharePoint Online这样做,因为出于显而易见的原因,Microsoft不会直接将Joe Schmoe上传代码直接向他们的SharePoint服务器和执行代码。

您需要使用SharePoint CSOM库。客户端侧对象模型的CSOM标准。或者您可以选择使用模式&实践SharePoint库。或者如果您需要做的是上传,您可以使用REST API或图形API来获得。

[url ...
加入
3月30日,2021年
消息
8
编程经验
5-10
我开始认为这个网站指出,指向我这样做,让我发出了错误的路径。

也许我应该使用SharePoint客户端对象模型(SCOM)。

在这里进行一些研究,因为它是上述方法是服务器端工作,而不是作为客户端的远程。
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,822
地点
切萨皮克,va.
编程经验
10+
有一个主要问题。您使用的代码有关On-Premise SharePoint,预计将在SharePoint Server本身上运行。您不能与SharePoint Online这样做,因为出于显而易见的原因,Microsoft不会直接将Joe Schmoe上传代码直接向他们的SharePoint服务器和执行代码。

您需要使用SharePoint CSOM库。客户端侧对象模型的CSOM标准。或者您可以选择使用模式&实践SharePoint库。或者如果您需要做的是上传,您可以使用REST API或图形API来获得。

 
解决方案
加入
3月30日,2021年
消息
8
编程经验
5-10
有一个主要问题。您使用的代码有关On-Premise SharePoint,预计将在SharePoint Server本身上运行。您不能与SharePoint Online这样做,因为出于显而易见的原因,Microsoft不会直接将Joe Schmoe上传代码直接向他们的SharePoint服务器和执行代码。

您需要使用SharePoint CSOM库。客户端侧对象模型的CSOM标准。或者您可以选择使用模式&实践SharePoint库。或者如果您需要做的是上传,您可以使用REST API或图形API来获得。

谢谢你的快速反馈。

我已经打了几个网站,指导了我去的方式,但它确实开始看起来达到服务器端。

我认为这让我处于正确的方向。

谢谢!
 
最佳 底部