Разработка в Visual Studio 2010 и Sharepoint 2007. Использование новых SPSite выдает ошибки - PullRequest
0 голосов
/ 10 февраля 2012

Я переписываю консольное приложение с использованием Visual Studio 2010. Исходное приложение было написано с использованием Visual Studio 2008 и работает нормально, но с ним не связано никаких тестов.Следовательно, идея переписать его с помощью тестов.

Оба приложения работают с сайтом Sharepoint 2007.

Проект компилируется, но когда я пытаюсь запустить его, код ниже выдает ошибки.

        SPSite spsite = null;
        SPSecurity.RunWithElevatedPrivileges(delegate() {
            spsite = new SPSite("http://sharepointdev");
        });

        return spsite;

Я запускаю это на Windows Server 2008. Я установил целевую платформу сборки на x86 (это в свойствах моего проекта) и в Security я проверилчто это приложение с полным доверием.Я также управляю проектом как администратор.Я также установил для .NET Framework значение 3,5

Это просто случай, когда SharePoint 2007 просто не хочет играть с Visual Studio 2010, или есть что-то еще, что я еще не рассматривал?

Я попытался выполнить поиск в Интернете и через stackoverflow, но все статьи, которые я видел, посвящены попыткам заставить Visual Studio 2010 работать с Sharepoint 2010.

Точная ошибка, которую я получаю,«Ссылка на объект не установлена ​​на мгновение объекта», когда отладчик выделяет вызов SPSecurity.

Если я просто использую этот код

using(SPSite spsite = new SPSite("http://sharepointdev")){

, тогда я получаю исключение FileNotFoundException, котороене совсем верно!У меня есть множество приложений, которые находят сайт по этому URL.Я подозреваю, что сообщение об ошибке пытается сказать, что моему приложению 2010 не разрешен доступ к сайту, но я не нашел никаких подсказок относительно того, почему это должно быть.

Любые подсказки, подсказки илипредложения с благодарностью приняты.

РЕДАКТИРОВАТЬ

Я взял код из своего проекта VS 2010 и перенес его в новый проект VS 2008, и он сразу же запустился.

ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ

Я создал простое небольшое консольное приложение в VS 2010. По умолчанию оно использует .NET Framework 4, мне пришлось установить его на .NET Framework 3.5,Я также установил целевой платформой «Любой процессор», и это работает.Это заставляет меня задуматься, есть ли проблема с тестовым проектом, связанная с моим первым приложением?

Я заново создал консольное приложение, но на этот раз без тестового проекта, связанного с ним (тестовый проект представлял собой библиотеку классов и работал с NUnit).Это бежало без проблем.Я предполагаю, что проблема заключается в тестовом проекте и в том, что решение не нравится.Возможно, там есть сборка, которая ей не нравится

1 Ответ

2 голосов
/ 11 февраля 2012

TL; DR; ответ: переключитесь на любую сборку процессора - не выбирайте x86.

Я сталкивался с этой проблемой раньше с консольной утилитой. Я получил ту же ошибку FileNotFound, но она относится к DLL, а не к вашему сайту SharePoint. Немного покопавшись, я обнаружил более глубокую ошибку BadImageFormat и понял, что жалуется на DLL или EXE. Я догадался, что это произошло из-за связи с x86 на MSIL. Есть много вещей, которые должны произойти с вызовами маршала между ними, и я думаю, это привело к несовместимости. Когда я переключил его (и проверил все мои проекты библиотек поддержки) на MSIL / Any CPU, приложение работало без проблем и без других изменений.

Я использую Visual Studio 2010 для разработки для SharePoint 2007 уже целый день, и единственные проблемы, с которыми я столкнулся, не связаны с этой комбинацией. Чаще всего это изюминка стороннего дополнения, которое я использую. Почти во всех моих разработках я начинаю с шаблонов WSP Builder, но они содержат ошибки и имеют некоторые причуды, с которыми вам нужно обойтись (некоторые достаточно серьезные, чтобы отключить сервер SharePoint), поэтому я не виню VS 2010 напрямую. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...