Практическое руководство. Использование программы SPMetal
Дата последнего изменения: 2 февраля 2011 г.
Применимо к: SharePoint Foundation 2010
В этом разделе описывается, как использовать средство командной строки SPMetal для создания объявлений классов сущностей для решений Microsoft SharePoint Foundation.
Настройка проекта разработки для использования SPMetal
Добавьте путь к программе SPMetal.exe в конец переменной среды Windows %PATH% на компьютере, используемом для разработки. Обычно это "%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN".
В меню Пуск компьютера, работающего под управлением операционной системы Windows Server, щелкните правой кнопкой мыши пункт Компьютер, а затем щелкните Свойства.
В диалоговом окне Система щелкните Дополнительные параметры системы.
В диалоговом окне Свойства системы перейдите на вкладку Дополнительно и выберите Переменные среды.
В списке Системные переменные выделите Путь и щелкните Изменить.
В диалоговом окне Изменение системной переменной добавьте точку с запятой в конце строки Значение переменной, а затем добавьте путь к папке, содержащей файл SPMetal.exe. Нажмите кнопку ОК три раза.
Примечание
Если во время выполнения этого действия открыта программа Microsoft Visual Studio, понадобится закрыть ее и открыть повторно, чтобы она смогла распознать новую переменную %PATH%.
Создайте на компьютере, используемом для разработки, веб-сайт SharePoint Foundation, который будет служить испытательным стендом для разработки кода LINQ to SharePoint. В степени, которую можно определить на текущей стадии разработки, веб-сайт должен содержать те же списки, столбцы и поля подстановки, что и окончательный тип веб-сайта, на котором планируется развернуть создаваемое решение. Программа SPMetal будет считывать эти сведения. Однако эту программу можно повторно запускать и вносить изменения по мере развития проекта.
Откройте свой проект Visual Studio и добавьте в него текстовый файл с именем Prebuild.bat.
Откройте файл Prebuild.bat, если он еще не открыт. Добавьте в него следующие строки.
Echo Off SET SPLANGEXT=cs Echo Backing up previous version of generated code ... IF NOT EXIST .\PreviousVersionGeneratedCode MkDir .\PreviousVersionGeneratedCode IF EXIST SiteName.%SPLANGEXT% xcopy /Y/V SiteName.%SPLANGEXT% .\PreviousVersionGeneratedCode Echo Generating code ... SPMetal /web:http://MyServer/MySite /code:SiteName.%SPLANGEXT%
При необходимости внесите в код следующие изменения:
Замените "cs" на "vb" во второй строке при использовании Microsoft Visual Basic.
Замените "MyServer/MySite" путем к веб-сайту на компьютере, используемом для разработки, для которого будет выполняться код LINQ to SharePoint.
Замените "SiteName" во всех трех расположениях именем веб-сайта. Эта строка не только является именем файла, но и становится частью имени класса, представляющего все списки и данные на веб-сайте. Используйте строку, которая показывает, что класс представляет весь веб-сайт; например строку "MySite" в конце URL-адреса или, возможно, значение заполнителя контента PlaceHolderPageTitle на домашней странице.
В этом пакетном файле сохраняется предыдущая версия созданного кода, которую при необходимости можно сравнивать с новой версией в целях отладки.
Сохраните файл, но не используйте для этого ни кнопки Сохранить или Сохранить все файлы на панели инструментов, ни команду Сохранить в меню Файл. Кодировка текстовых файлов по умолчанию в Visual Studio не совместима с системными пакетными файлами. Для сохранения выберите в меню Файл команду Сохранить Prebuild.bat как. В диалоговом окне Сохранение документа щелкните стрелку вниз рядом с кнопкой Сохранить, а затем выберите Сохранить с кодировкой. В диалоговом окне Дополнительные параметры сохранения в раскрывающемся списке Кодировка выберите Юникод (UTF-8, без сигнатуры), кодовая страница 65001 и нажмите кнопку ОК. Обязательно выберите вариант UTF-8, без сигнатуры.
Совет
Если файл случайно был сохранен неправильно, откройте его, внесите небольшое изменение, например добавьте пробел, и сохраните его в правильном виде. Файл не будет повторно сохранен при отсутствии изменений.
Щелкните правой кнопкой мыши имя проекта в окне Обозреватель решений и выберите пункт Свойства. Перейдите на вкладку События построения.
В поле Командная строка события до построения (не После построения) введите следующие две строки.
cd $(ProjectDir) Prebuild.bat
Щелкните Сохранить все.
После построения проекта в первый раз файл SiteName.cs (или SiteName.vb) появится в каталоге проекта в Windows, но не в окне Обозреватель решения. Добавьте его в проект как Существующий элемент.
При каждом последующем построении этого проекта SPMetal повторно создает объявления классов объектов и их свойства. Так как создаваемый файл каждый раз перезаписывается, не следует вносить в него никаких изменений. Но классы, создаваемые программой SPMetal, помечаются как "partial", поэтому можно добавлять в них дополнительные члены в отдельном созданном вручную файле кода, который не перезаписывается программой SPMetal.
Настройка программы SPMetal
В предыдущей процедуре описан лишь минимальный набор параметров SPMetal, необходимых для создания файла кода, в предположении, что для определения набора списков и столбцов, моделируемых в создаваемом коде, достаточно использовать параметры SPMetal по умолчанию. В следующей процедуре описывается, как изменять работу программы SPMetal.
Настройка параметров программы SPMetal и значений по умолчанию
Чтобы задать пространство имен для создаваемых классов, определить, возможна ли сериализация объектов этих классов, или указать, что URL-адрес в переключателе /web является адресом на удаленном компьютере (то есть не на компьютере, используемом для разработки), добавьте в командную строку SPMetal в файле prebuild.bat параметры /namespace, /serialization или /useremoteapi. Дополнительные сведения об этих параметрах см. в статье SPMetal.
Чтобы выполнить программу SPMetal в контексте другого пользователя, добавьте параметры /user и /password в командную строку программы SPMetal в файле prebuild.bat. Дополнительные сведения об этих параметрах см. в статье SPMetal.
Чтобы использовать для созданного файла кода расширение имени файла, отличное от "cs" или "vb", добавьте параметр /language в командную строку программы SPMetal в файле prebuild.bat. Дополнительные сведения об этом параметре см. в статье SPMetal.
Проверьте созданный файл после первого выполнения программы SPMetal и повторно после окончательного изменения списков, типов контента и полей (столбцов) веб-сайта. В любом из следующих случаев работа программы SPMetal, определенная по умолчанию, может приводить к созданию кода, который не соответствует потребностям или плохо понятен. В подобных случаях рассмотрите возможность создания XML-файла параметров программы SPMetal и добавления параметра /parameters в командную строку программы SPMetal в файле prebuild.bat. Дополнительные сведения о работе программы SPMetal по умолчанию, XML-файле параметров и параметре /parameters см., соответственно, в разделах Правила создания кода SPMetal по умолчанию, Переопределение значений SPMetal по умолчанию с помощью XML-файла параметров и SPMetal.
Имя одного или нескольких свойств, представляющих списки, является неподходящим.
Нужно добавить определенный набор списков, типов контента и столбцов в набор по умолчанию, моделируемый программой SPMetal, или исключить этот набор.
См. также
Ссылка
Концепции
Переопределение значений SPMetal по умолчанию с помощью XML-файла параметров