代码之家  ›  专栏  ›  技术社区  ›  Chris Tybur

升级SharePoint Web部件

  •  1
  • Chris Tybur  · 技术社区  · 15 年前

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

    4 回复  |  直到 9 年前
        1
  •  2
  •   Preston Guillot    15 年前

    这取决于你的解决方案到底在改变什么。有一个专门用于升级解决方案的stsadm操作,但是它在处理什么方面有一些限制,尤其是删除旧功能和添加新功能。但是,如果您的所有新功能都存在于Web部件DLL中,则运行解决方案升级将部署您的更改,而无需您进一步执行任何操作。

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

        2
  •  0
  •   Shiraz Bhaiji    15 年前

    我们已使用Visual Studio 2008 Extensions for Windows SharePoint Services 3.0,v1.3-2009年3月CTP。它给我们带来了一些问题,但当你习惯了它,并确保你按正确的顺序做事时,它会起作用。

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

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

    我们尝试做的另一件事是尽可能少地保留Web部件中的功能。移动可以移动到单独的dll中的内容,然后通常只需在新版本的dll中进行升级即可。

        3
  •  0
  •   Community CDub    7 年前

    如果要对Web部件进行细微更改,则可以仅替换DLL 如果 程序集版本保持不变。

    当然,在这里要谨慎对待细微的变化,不会破坏任何东西。

    参见本主题 how to use FileVersion and AssemblyVersion correctly .

    基本上,当文件版本随编译而变化时,对于较小的更新,保持assemblyversion不变。

    这正是Microsoft处理诸如microsoft.sharepoint.dll之类的事情的方式-assemblyversion固定为12.0。????文件版本随每个修补程序/服务包的变化而变化。

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

        4
  •  0
  •   Ahmad Hindash    9 年前

    用这个

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

    然后运行SharePoint作业

    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")
    
    推荐文章