如何在不丢失列表项的情况下升级包/解决方案(customwebform,workflow等)的一部分

时间:2011-11-03 18:02:15

标签: sharepoint sharepoint-2010

我一直在Visual Studio 2010中开发新的SharePoint 2010包。这是我在SharePoint中的第一个开发项目,所以请原谅我使用不正确的术语。

在软件包/解决方案中,有几个功能,一些自定义Web表单,以及自定义列表类型的工作流程,这也属于解决方案。

开发和调试我一直在使用Build>从Visual Studio中部署解决方案选项以构建解决方案,然后它将自动连接到我的sharepoint服务器并创建自定义列表,安装功能,添加工作流等。

但是当我想要进行更改时,请更改自定义NewForm上的文本颜色(我的名称为MyCustomForm.ascx),然后单击Build>部署解决方案它会删除自定义列表,删除工作流,停用和删除功能,然后重新添加它们。因此,我丢失了所有列表项。

在生产中,如果我需要修改工作流程,我不能简单地这样做,因为我们会丢失所有列表项。我怎么能这样做?

我做了几天研究,没有任何作用。我调查了一下:

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 个答案:

答案 0 :(得分:0)

列表被删除,因为您正在部署的解决方案包中包含列表项,因此Visual Studio通过确保您获得所有内容的最新版本来“帮助”(即使它没有更改)< / p>

您可以采取两种方法来克服这种行为

  1. 将部署模型设置为“No Activataion”,这将导致部署软件包并保留以前部署和激活的功能。

  2. 通过双击解决方案资源管理器中的包,然后双击右侧窗格中的列表实例项,从包中删除列表实例项。

  3. 下次重新部署解决方案时,您不应该删除现有列表(我不是100%关于工作流关联行为)。

    在这两个中我倾向于选择2