F# Script SharePoint 2010 API не работает

Я пытаюсь что-то действительно простое в F#, чтобы попытаться проверить взаимодействие с API SharePoint 2010. Я думаю, что сталкиваюсь с общей проблемой с F#. В любом случае сценарий F# может получить доступ к API-интерфейсу SharePoint 2010?

Я думаю, что моя проблема связана с 32-битными скриптами F#, а API-интерфейс SharePoint - с 64-битной.

Пример кода, который я пытаюсь запустить, выглядит следующим образом:

#r "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.sharepoint.dll"
#r "System.ServiceModel.dll"

open System
open Microsoft.SharePoint

let GetListByUrl (listUrl:string) =
    use site = new SPSite(listUrl)
    use web = site.OpenWeb()
    let list = 
        if not (web = null) then web.GetList(listUrl)
    list

В редакторе Visual Studio он говорит следующую ошибку: Тип System.ServiceModel.ChannelFactory`1 требуется здесь и недоступен. Вы должны добавить ссылку на сборку...

При запуске сценария выдается сообщение: System.IO.FileNotFoundException: веб-приложение в... не может быть найдено. Убедитесь, что вы правильно ввели URL-адрес...

Какое сообщение об ошибке я получаю, если пытаюсь получить доступ к API-интерфейсу SharePoint 2010 из 32-битной консольной программы C#. Если я изменю консольную программу C# на Any CPU, это сообщение не появится.

Однако я пытаюсь сделать это в F# сценарии, который, я думаю, 32-битный, так как бы я обойти это?

Кроме того, поскольку это, вероятно, общая проблема со сценариями F# и 64-битными библиотеками, как бы вы справились с проблемой необходимости ссылаться на 64-битные библиотеки DLL в сценариях F#?

Редактировать Я использовал corflags.exe в командной строке Visual Studio, чтобы изменить fsi.exe до 64 бит. Я следовал этому руководству: http://ig2600.blogspot.com/2010/05/making-fsharp-interpreter-fsi-run-in.html. Это, похоже, сработало, хотя интерактивное окно F# казалось медленнее. Однако когда я запустил приведенный выше код в 64-битном fsi, он сказал, что sharepoint не работает с.net 4.0. Как бы вы запустили интерактивное окно F# в.net 3.5?

Редактировать Из-за ответа, опубликованного Ф.Акино, в котором он сказал, что мне нужно добавить ссылку на System.ServiceModel, я обновил код, чтобы добавить это.

Это исправляет жалобы редактора визуальной студии, которые везде появляются с красными волнистыми линиями. Когда сценарий запускается, результаты совпадают, сценарий не может получить доступ к API sharepoint 2010, что является проблемой, с которой я столкнулся.

1 ответ

Решение

Вам нужно добавить ссылку на System.ServiceModel

Другие вопросы по тегам