Как обновить часть пакета / решения (customwebform, workflow и т. Д.) Без потери элементов списка

Я разрабатывал новый пакет SharePoint 2010 в Visual Studio 2010. Это мой первый проект разработки в SharePoint, поэтому прошу прощения за использование неверной терминологии.

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

Для разработки и отладки я просто использовал опцию Build > Deploy Solution из Visual Studio для построения решения, а затем оно автоматически подключалось к моему серверу sharepoint и создавало пользовательский список, устанавливал функции, добавлял рабочий процесс и т. Д.

Но когда я хочу внести изменения, скажем, изменить цвет текста в пользовательской NewForm (мой называется MyCustomForm.ascx), затем я нажимаю Build > Deploy Solution, он удаляет пользовательский список, удаляет рабочий процесс, деактивирует и удаляет функции а затем снова добавляет их все. Таким образом я теряю все свои пункты списка.

В производственном процессе, если мне нужно изменить рабочий процесс, я не могу просто сделать это, поскольку мы потеряем все наши элементы списка. Как я могу это сделать?

Я провел дни исследований и ничего не работает. Я посмотрел в:

stsadm -o upgradesolution -name SharePointProject1.wsp -filename ...
stsadm.exe -o execadmsvcjobs

безрезультатно. Он говорит, что все "работает" нормально (без ошибок), но не обновляет пользовательский MyCustomForm.

Я также пытался вручную редактировать файлы в:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES

безрезультатно. Я изменяю файл MyCustomForm.ascx и обновляю страницу сайта SharePoint, и она не изменилась.

Любое понимание будет полезно. Я делаю все разработки на сервере, на котором работает SharePoint, и у меня есть права администратора, если это поможет. Заранее благодарю за всю вашу помощь.

1 ответ

Список удален, потому что развернутый пакет решения содержит элемент списка, поэтому Visual Studio "помогает", гарантируя, что вы получите самую последнюю версию всего (даже если она не изменилась)

Есть два подхода, которые вы можете использовать, чтобы игнорировать это поведение.

  1. Установите для модели развертывания "Без активации", это приведет к развертыванию пакета и оставлению ранее развернутой и активированной функции на месте.

  2. Удалите элемент экземпляра списка из пакета, дважды щелкнув пакет в обозревателе решений, а затем дважды щелкнув элемент экземпляра списка в правой панели.

В следующий раз при повторном развертывании решения вам не следует удалять существующий список (я не на 100% отношусь к поведению рабочих процессов).

Из двух я бы склонялся к варианту 2

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