Поделиться через


Практическое руководство. Использование программы SPMetal

Дата последнего изменения: 2 февраля 2011 г.

Применимо к: SharePoint Foundation 2010

В этом разделе описывается, как использовать средство командной строки SPMetal для создания объявлений классов сущностей для решений Microsoft SharePoint Foundation.

Настройка проекта разработки для использования SPMetal

  1. Добавьте путь к программе SPMetal.exe в конец переменной среды Windows %PATH% на компьютере, используемом для разработки. Обычно это "%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN".

    1. В меню Пуск компьютера, работающего под управлением операционной системы Windows Server, щелкните правой кнопкой мыши пункт Компьютер, а затем щелкните Свойства.

    2. В диалоговом окне Система щелкните Дополнительные параметры системы.

    3. В диалоговом окне Свойства системы перейдите на вкладку Дополнительно и выберите Переменные среды.

    4. В списке Системные переменные выделите Путь и щелкните Изменить.

    5. В диалоговом окне Изменение системной переменной добавьте точку с запятой в конце строки Значение переменной, а затем добавьте путь к папке, содержащей файл SPMetal.exe. Нажмите кнопку ОК три раза.

    ПримечаниеПримечание

    Если во время выполнения этого действия открыта программа Microsoft Visual Studio, понадобится закрыть ее и открыть повторно, чтобы она смогла распознать новую переменную %PATH%.

  2. Создайте на компьютере, используемом для разработки, веб-сайт SharePoint Foundation, который будет служить испытательным стендом для разработки кода LINQ to SharePoint. В степени, которую можно определить на текущей стадии разработки, веб-сайт должен содержать те же списки, столбцы и поля подстановки, что и окончательный тип веб-сайта, на котором планируется развернуть создаваемое решение. Программа SPMetal будет считывать эти сведения. Однако эту программу можно повторно запускать и вносить изменения по мере развития проекта.

  3. Откройте свой проект Visual Studio и добавьте в него текстовый файл с именем Prebuild.bat.

  4. Откройте файл 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 на домашней странице.

    В этом пакетном файле сохраняется предыдущая версия созданного кода, которую при необходимости можно сравнивать с новой версией в целях отладки.

  5. Сохраните файл, но не используйте для этого ни кнопки Сохранить или Сохранить все файлы на панели инструментов, ни команду Сохранить в меню Файл. Кодировка текстовых файлов по умолчанию в Visual Studio не совместима с системными пакетными файлами. Для сохранения выберите в меню Файл команду Сохранить Prebuild.bat как. В диалоговом окне Сохранение документа щелкните стрелку вниз рядом с кнопкой Сохранить, а затем выберите Сохранить с кодировкой. В диалоговом окне Дополнительные параметры сохранения в раскрывающемся списке Кодировка выберите Юникод (UTF-8, без сигнатуры), кодовая страница 65001 и нажмите кнопку ОК. Обязательно выберите вариант UTF-8, без сигнатуры.

    СоветСовет

    Если файл случайно был сохранен неправильно, откройте его, внесите небольшое изменение, например добавьте пробел, и сохраните его в правильном виде. Файл не будет повторно сохранен при отсутствии изменений.

  6. Щелкните правой кнопкой мыши имя проекта в окне Обозреватель решений и выберите пункт Свойства. Перейдите на вкладку События построения.

  7. В поле Командная строка события до построения (не После построения) введите следующие две строки.

    cd $(ProjectDir)
    Prebuild.bat
    

    Щелкните Сохранить все.

  8. После построения проекта в первый раз файл SiteName.cs (или SiteName.vb) появится в каталоге проекта в Windows, но не в окне Обозреватель решения. Добавьте его в проект как Существующий элемент.

При каждом последующем построении этого проекта SPMetal повторно создает объявления классов объектов и их свойства. Так как создаваемый файл каждый раз перезаписывается, не следует вносить в него никаких изменений. Но классы, создаваемые программой SPMetal, помечаются как "partial", поэтому можно добавлять в них дополнительные члены в отдельном созданном вручную файле кода, который не перезаписывается программой SPMetal.

Настройка программы SPMetal

В предыдущей процедуре описан лишь минимальный набор параметров SPMetal, необходимых для создания файла кода, в предположении, что для определения набора списков и столбцов, моделируемых в создаваемом коде, достаточно использовать параметры SPMetal по умолчанию. В следующей процедуре описывается, как изменять работу программы SPMetal.

Настройка параметров программы SPMetal и значений по умолчанию

  1. Чтобы задать пространство имен для создаваемых классов, определить, возможна ли сериализация объектов этих классов, или указать, что URL-адрес в переключателе /web является адресом на удаленном компьютере (то есть не на компьютере, используемом для разработки), добавьте в командную строку SPMetal в файле prebuild.bat параметры /namespace, /serialization или /useremoteapi. Дополнительные сведения об этих параметрах см. в статье SPMetal.

  2. Чтобы выполнить программу SPMetal в контексте другого пользователя, добавьте параметры /user и /password в командную строку программы SPMetal в файле prebuild.bat. Дополнительные сведения об этих параметрах см. в статье SPMetal.

  3. Чтобы использовать для созданного файла кода расширение имени файла, отличное от "cs" или "vb", добавьте параметр /language в командную строку программы SPMetal в файле prebuild.bat. Дополнительные сведения об этом параметре см. в статье SPMetal.

  4. Проверьте созданный файл после первого выполнения программы SPMetal и повторно после окончательного изменения списков, типов контента и полей (столбцов) веб-сайта. В любом из следующих случаев работа программы SPMetal, определенная по умолчанию, может приводить к созданию кода, который не соответствует потребностям или плохо понятен. В подобных случаях рассмотрите возможность создания XML-файла параметров программы SPMetal и добавления параметра /parameters в командную строку программы SPMetal в файле prebuild.bat. Дополнительные сведения о работе программы SPMetal по умолчанию, XML-файле параметров и параметре /parameters см., соответственно, в разделах Правила создания кода SPMetal по умолчанию, Переопределение значений SPMetal по умолчанию с помощью XML-файла параметров и SPMetal.

    • Имя одного или нескольких свойств, представляющих списки, является неподходящим.

    • Нужно добавить определенный набор списков, типов контента и столбцов в набор по умолчанию, моделируемый программой SPMetal, или исключить этот набор.

См. также

Ссылка

SPMetal

Концепции

Переопределение значений SPMetal по умолчанию с помощью XML-файла параметров

Правила создания кода SPMetal по умолчанию