本主题介绍打包和部署 SharePoint 解决方案时可能会遇到的各种问题。
启用增强的调试
若要在 Visual Studio、SharePoint 和其他层之间进行诊断,可以使用 EnableDiagnostics 注册表项查看堆栈跟踪。 有关详细信息,请参阅 调试 SharePoint 解决方案。
将项目输出添加到解决方案包
可以通过包设计器将项目输出添加到包。 但是,添加项目输出时,请确保项目的平台与 SharePoint 解决方案的平台匹配。 建议对要部署到 SharePoint 服务器的程序集使用 任何 CPU 平台目标类型。 有关详细信息,请参阅“编译”页、项目设计器(Visual Basic)和“高级编译器设置”对话框(Visual Basic)。
验证警告和错误
Visual Studio 中的 SharePoint 开发工具执行验证步骤,验证解决方案包的格式是否正确。 还可以为功能和包创建自定义验证步骤。 有关详细信息,请参阅 如何:为 SharePoint 解决方案创建自定义功能和包验证规则。
部署冲突解决
部署 SharePoint 解决方案时,当服务器上的项与解决方案包中的项具有相同的名称、URL 或 ID 时,你可能会发现冲突。 可以更改 部署冲突解决 属性来解决、报告或忽略模块、Web 部件、列表实例和内容类型的冲突。
下表展示了 部署冲突解决 属性的设置。
| 价值 | Description |
|---|---|
| 自动 | 检测冲突并自动解决冲突。 |
| Prompt | 在解决冲突之前,检测冲突并将其报告给开发人员。 |
| None | 不会检测碰撞。 |
F5 部署之间的差异
使用 Visual Studio 将 SharePoint 项目部署到本地 SharePoint 服务器进行测试和调试时,Visual Studio 会执行一些其他步骤。
在部署步骤中重置 Internet 信息服务(IIS)。
自动关联工作流。
根据包设计器中的层次结构设置功能激活顺序。
可以添加自定义部署步骤以进一步更改 F5 行为。 有关详细信息,请参阅 演练:为 SharePoint 项目创建自定义部署步骤。
部署可视化 Web 部件时,延迟显示 SharePoint 页面
将 Visual Web 部件部署到 Windows Vista、Windows 7 或 Windows Server 2008 的 Bin 文件夹时,SharePoint 页面显示需要很长时间。 如果更改顶级 ASP.NET 目录中的任何文件(例如 Bin 目录),则整个 Web 应用程序会重新编译。 这可能会导致 SharePoint 页面呈现最多 25 秒的延迟。
错误消息
没有。
决议
若要解决此问题,请执行以下步骤:
安装更新KB967535,如Microsoft支持文章 FIX 中所述:修补程序可用于修复 IIS 7.0 for Windows Vista 和 Windows Server 2008 上的 ASP.NET 中的两个问题。
将以下行添加到 Web.config 文件:
<compilation batch="false" optimizeCompilations="true">
SharePoint 项目部署失败,出现错误“无法提取解决方案中的 cab 文件”
如果任何 SharePoint 项目项的名称包含括号,则其解决方案在部署时失败,并出现错误。
错误消息
部署步骤“添加解决方案”中出错:无法提取解决方案中的 cab 文件。
决议
若要解决此问题,请删除 SharePoint 项目项名称中的任何括号。
将视觉 Web 部件部署到不同 Web 应用程序上的网站时出现错误
第一次将可视化 Web 部件部署到当前部署的 Web 应用程序以外的网站(通过更改可视化 Web 部件的 SiteUrl 属性)时,您将会收到错误提示。
错误消息
部署步骤“添加解决方案”中出错:此服务器场中已安装 ID 为 [#] 的功能。 使用“force”属性显式地重新安装该功能。
决议
此错误是由于在 SharePoint 中收回视觉 Web 部件功能的方式而发生的。 若要成功部署可视 Web 部件,请再次选择 F5 密钥来部署解决方案。
部署嵌套用户控件时出现警告
当你部署包含嵌套用户控件的 SharePoint 解决方案(例如包含用户控件的可视 Web 部件或包含视觉 Web 部件或其他用户控件的用户控件)时,将发生此警告。 无论是通过从工具箱拖动控件还是使用源视图中的 @Register 指令向设计器添加控件,都会出现此警告。
错误消息
警告 1 元素“[控件名称]”不是已知元素。 如果网站中存在编译错误,或者缺少 web.config 文件,则可能会出现此错误。
决议
如果 Visual Studio 项目系统不知道嵌套用户控件,则它无法提供 IntelliSense 并发出警告。 如果项目未生成且设计器未关闭并重新打开,或者启用了自动收回选项,则项目系统不知道嵌套用户控件,这会导致调试后从 SharePoint 配置单元中收回用户控件。
若要删除此警告,请生成项目,然后关闭并重新打开设计器,或禁用项目的自动收回选项。 为此,请清除项目属性对话框的 SharePoint 选项卡上的“调试后自动收回”复选框。