#sharepoint #sharepoint-2010 #tfsbuild #workflow-foundation
#sharepoint #sharepoint-2010 #tfsbuild #workflow-foundation
Вопрос:
У меня есть некоторые тесты, безопасность, управление проектами и некоторые другие документы Word в системе управления версиями TFS2010 в папке Documents. Кто-нибудь знает, как получить к ним доступ, чтобы загрузить и скопировать в локальный путь?
Эти файлы физически не находятся в $/… папка, хотя у них есть путь к веб-серверу Sharepoint, например: « http://myServer/sites/MyProyect/Test/Tests_P13_F00120.doc
«. Я безуспешно пытался использовать DownloadFiles
activity из-за того, что ему нужен путь, начинающийся с $/. Какие-либо предложения, пожалуйста?
Комментарии:
1. Эти файлы находятся не в системе управления версиями, а в SharePoint.
2. @JohnSaunders: Да, я упоминал об этом «хотя у них есть путь к веб-серверу Sharepoint …». Но есть ли какой-нибудь способ получить их через рабочие процессы? Спасибо за ответ
3. Пожалуйста, скажите, чего вы пытаетесь достичь. «Получить их» не очень понятно.
4. @JohnSaunders: Когда я говорю получить их, я имею в виду загрузить, например, все документы в папке Test с моего сайта Sharepoint (который подключен к моей Team Build 2010) с помощью Team Build Workflow. Пример:
http://myServer/sites/MyProyect/Test/*.doc
5. Изучите API на стороне клиента SharePoint. Сейчас я рассматриваю пример в «Справочнике разработчика Microsoft SharePoint 2010», глава 5, «Технологии на стороне клиента», листинг 5-25. Он загружает только один документ, но это предполагает, что есть способ загрузить целую папку.
Ответ №1:
DownloadFiles
это не то действие, которое вы можете использовать, оно предназначено для работы с файлами, находящимися в системе управления версиями.
Вместо этого вам необходимо установить соединение со службой копирования Sharepoint вашей TFS, которая находится по адресу http://<Site>/_vti_bin/Copy.asmx
. Мы сделали это, добавив ссылку на службу в наше решение для сборки.
Затем мы внедрили действие сборки, которое в основном противоположно тому, что вам нужно: во время сборки TFS оно загружает документы в Sharepoint.
Создание экземпляра выглядит следующим образом:
BasicHttpBinding binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
EndpointAddress endpointAddress = new EndpointAddress("http://<Site>/_vti_bin/Copy.asmx");
CopySoapClient copyService = new CopySoapClient(binding,endpointAddress);
Эта служба копирования предоставляет GetItem
метод, который вы, вероятно, должны вызывать.
Я не знаю, способно ли это GetItem
поддерживать http://myServer/sites/MyProject/Test/*.doc
что-то вроде