SharePoint自定义模块开发和部署
你好 我们正在为SharePoint开发自定义模块(信息管理系统)。此模块的项目文件是包含用户控件的类库。用户控件基于SmartPart和AJAX扩展工具包。该模块有一个单独的数据库,其中包含表/视图/存储过程 在开发环境中,我们按照以下步骤部署模块:SharePoint自定义模块开发和部署,sharepoint,deployment,user-controls,Sharepoint,Deployment,User Controls,你好 我们正在为SharePoint开发自定义模块(信息管理系统)。此模块的项目文件是包含用户控件的类库。用户控件基于SmartPart和AJAX扩展工具包。该模块有一个单独的数据库,其中包含表/视图/存储过程 在开发环境中,我们按照以下步骤部署模块: 还原模块数据库的备份副本 关于预生产或测试 环境 安装AJAX扩展工具包 修改web应用程序的web.config以获取连接字符串、AJAX扩展的safecontrol条目、页面的enablesessionstate设置为true、添加AJAX
- 还原模块数据库的备份副本 关于预生产或测试 环境
- 安装AJAX扩展工具包
- 修改web应用程序的web.config以获取连接字符串、AJAX扩展的safecontrol条目、页面的enablesessionstate设置为true、添加AJAX扩展标记条目,并取消注释以下行:
- 在web应用程序根目录中创建UserControls文件夹,并将所有用户控件复制到该文件夹中。因为SmartPart将(我假设只能)定位用户控件
-
修改web应用程序的web.config
对于连接字符串,safecontrol
AJAX扩展的条目,
enablesessionstate设置为true of
页面,添加AJAX扩展标记项,
并取消对以下行的注释:<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
)
- 在web中创建UserControls文件夹 应用程序根目录并复制所有用户 控制那里。如SmartPart所愿(可以 仅,我假设)找到用户控件
因此,将它们放在resources文件夹中可能是个好主意?有一种方法可以将SmartPart指向ControlTemplates文件夹,但需要重新编译SmartPart解决方案。要让SmartPart查看12\CustomTemplates\YourFolder\中的内容,您需要从codeplex中获取SmartPart的代码,将代码更改到需要的位置,然后重新编译并重新打包为WSP。我就是这样绕过这个问题的。如果您这样做并维护自己的版本,您将在将来节省开发时间。我们已经做到了这一点,并将在将来与其他客户机重用我们自己的版本。 希望SmartPart的原始代码能够得到更新以适应这种情况 SmartPart控件提示: 确保在编辑模式下打开控件中的任何验证器,否则将填写所有字段以发布页面。SharePoint在编辑模式下会做一些有趣的事情,所以请确保在编辑模式下使用SmartPart测试所有用户控件 部署到资源 我认为这可能是一个权限问题,通常人们会将程序集部署到80\bin,我不记得做了什么特别的事情来实现这一点。 由于wsp是通过SharePoint部署的,如果SharePoint没有“资源”文件夹的权限,则可能会失败。 可能的问题: a) 资源文件夹不存在于inetpub中或根文件夹所在的任何位置。(尝试创建结构) b) 资源文件夹与bin文件夹设置的权限不同。(测试以查看是否可以将程序集部署到bin) c) 资源文件夹是只读的,这是导致问题的原因。(取下只读) d) SharePoint从不允许程序集以外的文件通过WSP显示到根文件夹(不太可能,也不确定)
我对解决此类问题的建议是将wsp的内容提取到文件夹中(将.wsp扩展名重命名为.cab并提取.cab)。摆弄文件和结构>从中创建cab文件(google this)>将扩展名重命名回.wsp>部署>测试>如果它不工作,请再次摆弄结构并重试。抱歉。我查阅了文档,预定义的文件夹只起作用。请参阅已编辑的答案。尝试在80下创建UserControls文件夹,但在我使用WSPBuilder部署选项部署时,它没有在web应用程序根目录中创建它。更准确地说,它不支持用户定义的文件夹。如果您创建80/resources/UserControls,并且它对您有效,它应该可以工作(根据文档)。你说得对,Janis。但是,另一个问题随之而来。UserControls文件夹具有*.ascx