Для запуска Expression Builder требуется SPContext - PullRequest
1 голос
/ 16 сентября 2009

У меня проблема с веб-сайтами Visual Studio 2008 и SharePoint / MOSS 2007. Ранее у нас было 2 проекта веб-приложений, размещенных под нашей структурой SharePoint, но из-за характера файлов проекта и контроля исходного кода это создавало проблемы в нашем среда разработки команды. Я решил переключиться с веб-приложений на веб-сайты, чтобы удалить файл проекта, пока у меня не будет времени сменить систему контроля версий на TFS. Все работает нормально, однако, когда я пытаюсь вручную создать один из веб-сайтов, я получаю следующую ошибку:

Для этого построителя выражений требуется SPContext для запуска

Теперь это не является реальной проблемой из-за природы веб-сайтов и того, как они компилируются при загрузке. Но это проблема для моей команды разработчиков, так как нам бы очень хотелось получить успешные сборки по разным причинам.

Проблема возникает из-за использования используемого нами построителя пользовательских выражений, который все еще отлично работает во время выполнения. Только во время компиляции это дает нам ошибку.

Буду очень признателен за любые мысли или идеи о том, как решить эту проблему.

Приветствия

Брендан

1 Ответ

0 голосов
/ 16 сентября 2009

SPContext.Current используется многими приложениями SharePoint для определения текущего контекста SharePoint, в котором они работают. С внесенными изменениями это, очевидно, больше невозможно в процессе сборки.

Одним из вариантов является создание некоторой защиты, при которой, если действительный SPContext не может быть найден, он создается с новыми объектами SPSite / SPWeb, необходимыми для обеспечения этого контекста. Это может потребовать некоторой реархитектуры в зависимости от того, как был разработан построитель выражений, особенно потому, что теперь вам нужно будет правильно утилизировать созданные объекты SPSite и SPWeb (что не требуется при использовании SPContext).

Другим вариантом является использование насмешливого фреймворка, такого как Typemock Isolator . Это будет фальсифицировать / подделывать SPContext. Тем не менее, я думаю, что вам придется реструктурировать код, чтобы использовать это. С положительной стороны, вы можете остаться только с использованием SPContext.

...