Как я могу улучшить цикл редактирования-компиляции-тестирования при разработке рабочего процесса SharePoint?

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

Есть статья о том, как отлаживать рабочий процесс SharePoint здесь, в которой рассказывается, как устанавливать точки останова и т. д. Это включает в себя копирование файла .pdb в GAC вместе с файлом .dll, содержащим ваш рабочий процесс. Вы должны сделать это из командной строки (или пакетного файла), потому что Windows Explorer не позволяет вам просматривать соответствующий подкаталог c: \ windows \ assembly.

Однако, если вы сделаете это, в следующий раз, когда вы попытаетесь развернуть рабочий процесс из Visual Studio, он пожалуется, что не может быть развернут, потому что «файл не может быть подписан», и если вы попытаетесь скопировать новую версию dll в GAC, он сообщает вам, что файл .dll заблокирован.

Я обнаружил, что иногда вы можете обойти это, выполнив iisreset, но в других случаях вам нужно перезапустить Visual Studio, и были частые случаи, когда мне даже приходилось перезагружать компьютер, потому что какая-то загадка процесс заблокировал файл. С другой стороны, когда я не использую отладчик, все работает нормально.

Кто-нибудь знает более простой способ отладки рабочих процессов, чем этот?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
991
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Команда SharePoint в настоящее время работает над расширениями MOSS для VS 2008, которые позволят использовать этот тип функциональности. Это было доступно в VS 2005 с расширениями MOSS, но должно запускаться в Windows Server с полной установкой MOSS и правильным набором разрешений.

Одна вещь, которая действительно могла бы помочь, - это если бы группа SharePoint предоставила интерфейсы для сервисов рабочих процессов SP, необходимых для запуска рабочих процессов SP. Это позволит вам имитировать эти интерфейсы и запускать рабочие процессы за пределами собственно SP. AFAIK, вы не можете сделать это сегодня.

Я лично считаю, что SharePoint чрезвычайно болезненно развиваться ... не только с рабочими процессами, но и в целом. Я понимаю административные преимущества и продуктивность конечных пользователей, но для Joe .NET Developer это довольно ужасный опыт.

Что касается ускорения сброса IIS, у Эндрю Коннелла есть несколько советов. http://www.andrewconnell.com/blog/archive/2006/08/21/3882.aspx

Это уменьшило время сброса моего IIS с 10+ секунд до менее чем 2 секунд.

Я не уверен, что вам нужно передавать файл pdb в GAC. (По крайней мере, исправление, которое я собираюсь описать, отлично подходит для отладки веб-частей SharePoint в VS2005, которые имеют аналогичную проблему.)

Есть флажок, отмеченный «Включить только мой код (только управляемый)» в Инструменты -> Параметры -> Отладка; если вы снимите этот флажок, Visual Studio с радостью загрузит ваши pdb из папки bin \ Debug, в которой они были созданы. Наверное. Во всяком случае, не помешает попробовать ...

Когда я начал использовать WSPBuilder, у меня стало намного быстрее разрабатывать решения SharePoint в целом (не только рабочие процессы). WSPBuilder имеет надстройку Visual Studio под названием WSPBuilder Extensions, и, на мой взгляд, расширения WSPBuilder работают лучше, чем печально известный Инструменты Windows SharePoint Services 3.0: расширения Visual Studio 2008, версия 1.2. Благодаря меню WSPBuilder развертывание / обновление / удаление решения осуществляется одним щелчком мыши!

Хорошо, WSPBuilder - отличный инструмент для развертывания вашего решения на производственных или тестовых машинах.

Johannes Hädrich 19.09.2008 18:02

Ознакомьтесь с STSDev на CodePlex, созданном такими MVP SharePoint, как Тед Паттисон, Эндрю Коннелл, Скот Хиллиер и другими.

STSDEV is a proof-of-concept utility application which demonstrates how to generate Visual Studio project files and solution files to facilitate the development and deployment of templates and components for the SharePoint 2007 platform including Windows SharePoint Services 3.0 (WSS) and Microsoft Office SharePoint Server 2007 (MOSS). Note that the current version of the stsdev utility only supports creating projects with the C# programming language.

Кит

Другие вопросы по теме

В чем разница между ошибкой и запросом на изменение в MSF для CMMI?
Как удалить нижний колонтитул из сообщения Microsoft Teams, отправляемого с помощью рабочего процесса Powerapps?
Как отправлять уведомления об ошибках воздушного потока в Microsoft Teams с помощью Microsoft 365 Worfklow
Как я могу получить UPN человека, который активирует рабочий процесс управления жизненным циклом идентификации EntraID?
Есть ли способ создать универсальный экземпляр Kogito, который может обрабатывать бессерверные рабочие процессы во время выполнения?
Действия Github: строка среды не получена
Последовательность рабочих процессов Azure Boards
Запуск неправильного файла в Azure через многофайловый проект ASP .Net рабочего процесса действий Github
Как я могу зафиксировать и отправить изменения в репозиторий в одновременных запусках рабочего процесса действий Github?
Действие Github не запускается в запланированное время

Похожие вопросы

Альтернативное имя хоста для веб-сайта IIS только для внутреннего доступа
Как сослаться на сборку с несколькими версиями
Проблема с MOSS SSP - неудачный вход в базу данных из удаленного SSP
Sharepoint: выполнение stsadm из задания таймера + SHAREPOINT \ Системные права
Может ли частичная отрисовка ASP.NET AJAX работать на странице приложения SharePoint 2007?
Почему @microsoft.graph.downloadUrl не заполняется при HTTP-вызове, но работает с Graph SDK?
Ошибка «Требуется одобрение администратора» при использовании делегированного разрешения «Sites.Selected» для загрузки документов SharePoint
Как получить журналы аудита для приложения метки конфиденциальности в файлах SharePoint с помощью API Microsoft Graph?
Перемещение видеофайла из хранилища BLOB-объектов Azure на сайт Sharepoint на C#
Как устранить ошибку «недопустимое имя хоста для этой аренды» при доступе к API Microsoft Graph для регистрации мультитенантного приложения?