0

我尝试了多种方法将生产 SharePoint 内容获取到我新安装的本地开发环境中,该开发环境在 VM Windows Server 2008 R2 上运行。在农场导出和恢复失败后,我看到了这篇博文并按照以下说明操作:http ://richardstk.wordpress.com/2012/02/03/build-a-sharepoint-2010-development-test-environment /。总而言之,它基本上是备份实时 SQL 内容数据库以及 Profile、Sync 和 Social 数据库,然后在开发机器上恢复它们​​并指示 SharePoint 使用这些新数据库而不是旧数据库。然后,我从 Visual Studio 中将自定义 Web 部件部署到开发服务器。

我已经这样做了,它似乎工作得很好。我可以访问 Central Administrator 以及在 Visual Studio 中设置 SharePoint 连接,并且能够查看所有页面、列表、文档等。所以它肯定指向新的内容数据库。我应该提到我还可以通过 SharePoint Designer 连接并访问所有正确的内容、母版页、列表等。

我遇到的问题是,当我在浏览器中访问该站点时出现“无法加载文件或程序集”错误,它会将我带到 /Pages/Home.aspx。该文件是我从 Visual Studio 中部署的自定义 Web 部件。当我在 GAC 中查看时,我看到列出的程序集,但 PublicKeyToken 与错误消息中显示的不同。

当我深入研究它时,我看到自定义用户控件已在我的母版页中注册,当我查看它所在的 _controltemplates 目录中的 ascx 文件时,有一个如下所示的程序集:

<%@ Assembly Name="BlogRoll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=529e9730fe2a198d" %>

当我在那里查看 GAC 时,PublicKeyToken 对于实时站点是正确的,但是当我将它部署到本地 GAC 时,它创建了一个新的 PblicKeyToken。对不起,如果我漫无目的,但我不确定什么是相关的,什么不是。

我想我的问题是如何处理这个?在本地更改所有 ascx 文件以匹配我在本地 GAC 中拥有的新 PublicKeyToken 似乎并不聪明,因为当我将这些更改部署到现场时,他们将找不到合适的程序集。处理这个问题的最佳方法是什么?

更新

有问题的代码有一个 key.snk 文件,用于对其进行强签名。我的理解是,这应该使它每次都使用特定的 PublicKeyToken 进行编译,因此使用特定的 PublicKeyToken 安装在 GAC 中。如果这是真的,那么我相信它在我的开发环境与生产环境中具有不同密钥令牌的唯一原因是提供的 key.snk 文件不正确。真的吗?

4

1 回答 1

0

您可以使用 WSP Builder 或 WinGac 将具有正确 PublicKeyToken 的程序集强制部署到本地 GAC。

于 2013-02-21T00:19:51.693 回答