【问题标题】:SharePoint 2010 GAC deployment doesn't updateSharePoint 2010 GAC 部署不更新
【发布时间】:2011-01-10 19:32:46
【问题描述】:

我突然想到了以下问题。直到大约 2 天前,下面提到的步骤一直运行良好。

当我将解决方案(Web 部件)的更新部署到 SharePoint 2010 服务器时,我看不到更新。该解决方案确实已安装,但据我所知,已安装的 Web 部件已有一个多月的历史(没有安装任何新部件)。

我通过 PowerShell 执行以下步骤:

retract the solution from the web app
remove the solution  
add the solution  
install the solution to the web app

我已尝试重新启动 Web 应用程序、重新启动 IIS 并重新启动服务器。似乎没有任何效果。

我注意到,在我删除解决方案后,它确实会从 GAC 中删除。在我添加/安装它之后,解决方案确实会重新出现在 GAC 中。

我错过了什么吗?我是否忽略了我应该做的一步?有什么要尝试的吗?

【问题讨论】:

  • from what I can tell the installed web parts are over a month old。好吧,但你怎么知道?你只是在浏览器中加载页面吗?
  • 在浏览器中加载,但也可以从“站点设置”>“画廊”>“Web 部件”中查看日期。最后一次修改是一个多月前,当时我知道我在过去几天内一直在处理它们。

标签: sharepoint deployment sharepoint-2010 gac


【解决方案1】:

我从未停用/重新启用该功能。

按照我在问题中提到的相同步骤,我刚刚停用,然后重新激活,功能和一切都开始正常工作。

这是一件容易的事,我可以通过我的解决方案更新开始实施。但是,为什么我以前从来不用这一步呢?

【讨论】:

  • ¿ 程序集是否可能在内存中? ¿ 您可以尝试不取消/重新激活重新启动系统的功能吗?
【解决方案2】:

一般来说,您应该检查您的 ULS 日志以查看您的解决方案的版本正在运行。如果您看到旧版本,那么您可以确定您激活的站点功能仍然绑定到旧版本。在这种情况下,您必须确实取消激活站点功能以松开该联系,然后激活以绑定到新的(似乎激活总是将站点功能与最新版本的解决方案联系起来)。

也许您之前不必这样做,因为您没有更改解决方案的版本号,在服务器上的 GAC 中显示为相同的版本。在这种情况下,您的站点功能已经指向解决方案的正确版本,因此不必重置该功能。

【讨论】:

    【解决方案3】:

    您可能已经检查过了,但以防万一。确保 powershell 脚本没有添加一个月大的包。

    【讨论】:

    • 我已经检查过了,WSP 文件上的时间戳确实与构建解决方案的时间相对应(在这种情况下是今天早上,而不是一个月前)。
    • 尝试将 .wsp 文件重命名为 .cab,然后您将能够打开它并检查其中的内容。还要仔细检查 powershell 脚本,以便它正在部署您期望的 wsp。
    • 将 wsp 更改为 cab。内容是我怀疑的(新东西)。将仔细检查脚本并返回...
    【解决方案4】:

    问题出在 Web 部件代码还是配置上?配置通常迟早会自行取消并拒绝从解决方案中更新 - 如果那里有任何更改,您可以手动更新库中的文件。对于大多数更新,不会有任何更改,因为现有的 Web 部件无论如何都不会应用更新 - 它们将使用新代码但旧配置。

    如果问题出在代码本身,程序集是否在系统看来没有改变? SharePoint 配置文件中的所有硬编码全名引用意味着通常您正在部署一个新程序集但具有相同的版本号。这可能意味着系统不会费心进行更新。我发现在每次构建时更新 AssemblyFileVersion(不会影响绑定)并在 _layouts 中有一个页面来显示所有已加载程序集的文件版本非常有用,这样我就可以确切地知道正在运行的是什么。

    【讨论】:

      猜你喜欢
      • 2012-08-06
      • 2011-11-25
      • 1970-01-01
      • 2011-05-04
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多