【问题标题】:Upgrading SharePoint web parts升级 SharePoint Web 部件
【发布时间】:2015-09-17 20:52:11
【问题描述】:

我有几个自定义 Web 部件正在部署到生产环境中。在这个过程中,我发现了一些需要在各个部分进行调整的小事情。为了部署新代码,我创建了一个新的解决方案包,停用然后删除功能,收回然后删除解决方案,然后使用新包以相反的顺序再次执行所有操作。不用说,这可能很耗时。是否需要完全删除 Web 部件才能对其进行升级,或者是否可以就地升级 Web 部件/功能/解决方案?

【问题讨论】:

    标签: sharepoint sharepoint-2007 sharepoint-deployment


    【解决方案1】:

    这取决于您的解决方案到底发生了什么变化。有一个专门用于升级解决方案的 stsadm 操作,但就它所处理的内容而言,它有一些限制,最明显的是删除旧功能和添加新功能。但是,如果您的所有新功能都存在于 Webpart DLL 中,则运行解决方案升级将部署您的更改,而无需您进一步执行任何操作。

    http://msdn.microsoft.com/en-us/library/aa543659.aspx

    【讨论】:

    • stsadm -o upgradesolution 是我正在寻找的。我已经阅读了它的警告,但这些都不适用于我的当前情况,所以我可以安全地使用它。
    【解决方案2】:

    我们使用了适用于 Windows SharePoint Services 3.0 v1.3 - 2009 年 3 月 CTP 的 Visual Studio 2008 扩展。它给我们带来了一些问题,但是当您习惯它并确保您以正确的顺序做事时,它就会起作用。

    http://www.microsoft.com/downloads/details.aspx?FamilyID=FB9D4B85-DA2A-432E-91FB-D505199C49F6&displaylang=en

    此工具可自动执行 retact / delete / deploy / activate .... 作业。

    我们尝试做的另一件事是在 Web 部件中保留尽可能少的功能。将可以移动的东西移动到单独的dll中,然后通常可以通过应对新版本的dll来进行升级。

    【讨论】:

      【解决方案3】:

      如果您对 Web 部件进行微小更改,则只需替换 DLL 的如果程序集版本保持不变。

      当然,对于什么是小改动并且不会破坏任何内容,请谨慎考虑。

      请参阅此主题以获取 how to use FileVersion and AssemblyVersion correctly

      基本上,您将 AssemblyVersion 保持不变以进行小更新,而 FileVersion 会随着编译而改变。

      这正是微软使用 Microsoft.SharePoint.dll 之类的东西的方式——AssemblyVersion 固定为 12.0。???而 FileVersion 会随着每个修补程序/服务包而变化。

      哦 - 我刚刚阅读了您答案的“生产部分”,此快捷方式可能更适合开发/测试而不是 QA/生产

      【讨论】:

        【解决方案4】:

        使用这个

        stsadm -o upgradesolution -name "WSPName.wsp" -filename "c:/WSPName.wsp" -immediate -allowgacdeployment -allowcaspolicies
        

        然后运行共享点作业

        stsadm -o execadmsvcjobs
        

        另一方面,您可以使用 SharePoint PowerShell 命令更新 dll

        Set-location "C:\Users\Documents\WSP" 
        [System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")            
        $publish = New-Object System.EnterpriseServices.Internal.Publish            
        $publish.GacInstall("C:\Users\Documents\WSP\wspcustom.dll")
        

        【讨论】:

          猜你喜欢
          • 2012-11-04
          • 2011-06-16
          • 1970-01-01
          • 2012-02-07
          • 1970-01-01
          • 2019-08-15
          • 2011-04-15
          • 2012-03-19
          相关资源
          最近更新 更多