SharePoint自定义模块开发和部署

SharePoint自定义模块开发和部署,sharepoint,deployment,user-controls,Sharepoint,Deployment,User Controls,你好 我们正在为SharePoint开发自定义模块(信息管理系统)。此模块的项目文件是包含用户控件的类库。用户控件基于SmartPart和AJAX扩展工具包。该模块有一个单独的数据库,其中包含表/视图/存储过程 在开发环境中,我们按照以下步骤部署模块: 还原模块数据库的备份副本 关于预生产或测试 环境 安装AJAX扩展工具包 修改web应用程序的web.config以获取连接字符串、AJAX扩展的safecontrol条目、页面的enablesessionstate设置为true、添加AJAX

你好

我们正在为SharePoint开发自定义模块(信息管理系统)。此模块的项目文件是包含用户控件的类库。用户控件基于SmartPart和AJAX扩展工具包。该模块有一个单独的数据库,其中包含表/视图/存储过程

在开发环境中,我们按照以下步骤部署模块:

  • 还原模块数据库的备份副本 关于预生产或测试 环境
  • 安装AJAX扩展工具包
  • 修改web应用程序的web.config以获取连接字符串、AJAX扩展的safecontrol条目、页面的enablesessionstate设置为true、添加AJAX扩展标记条目,并取消注释以下行:

  • 在web应用程序根目录中创建UserControls文件夹,并将所有用户控件复制到该文件夹中。因为SmartPart将(我假设只能)定位用户控件

我们就是这样做的。我确信这不是一个好的做法,应该有更好的方法来做到这一点

我的一个问题是,我们能否创建一个 单独的web.config文件将 具有所有必需的标记和设置 这样我们就不需要改变网络了 应用程序web.config?只是猜测而已

正如所有WSPBuilder用户都知道的那样,您无法修改manifest.xml文件,也无法与web应用程序文件夹进行良好集成。我不知道为什么SmartPart会选择web应用程序根文件夹来定位用户控件。SmartPart是否可以开始从12配置单元的TEMPLATE\CONTROLTEMPLATES文件夹中选择用户控件

我们正在寻找一种更合适的方法。对于我来说,针对这种情况,一个好的做法是消除所有手动配置/设置步骤。模块用户甚至不需要做一个单独的手动设置就可以启动并运行它。我相信有很多方法可以做得比这更好,但最好的方法是什么呢

另外,我想提出一些建议 基于web的定制模块开发 SharePoint良好(或最佳)做法

我们正在使用一组工具,如WSPBuilder、WSS的Visual Studio扩展、STSDEV、SPVisualDev、SharePoint内容部署向导、SharePoint管理工具、SharePoint安装程序

谢谢

祝你有愉快的一天

  • 修改web应用程序的web.config
    对于连接字符串,safecontrol
    AJAX扩展的条目,
    enablesessionstate设置为true of
    页面,添加AJAX扩展标记项,
    并取消对以下行的注释:

    <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
    

    • 在web中创建UserControls文件夹 应用程序根目录并复制所有用户 控制那里。如SmartPart所愿(可以 仅,我假设)找到用户控件

    如果我说的没错,你可以创建一个名为“80”的文件夹(就像文件夹“12”)并在预定义的文件夹中部署你自己的文件夹

    :

    80文件夹代表 WebApplication文件夹和包含 以下子文件夹80\bin, 80\wpcatalog,80\resources。80\bin 包含dll的。如果你有 Web部件定义(Web部件、dwp) 文件,它们进入WPC目录 文件夹。任何文件都可以添加到 资源文件夹


    因此,将它们放在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