使用ContentDeploymentJob.AddQuickDeployObject的时候, 请注意第三个参数一定要使用Server Relative URL
MSDN描述这个方法的时候, 并没有写上这个十分值得注意的地方. 笔者在解决一个朋友的问题的时候, 发现了这个问题.
笔者已经在MSDN的ContentDeploymentJob.AddQuickDeployObject Method 文章下面添加了一条注释, 提醒大家使用这个content deployment API的时候注意一下.
这里用中文对原因做出解释, 方便国内的朋友们.
正如大侠Stefan介绍的, 一个页面在被指定需要quick deploy之后, SharePoint的一个隐藏列表(名为’Quick Deploy Items’)中会添加一条关于这个item的记录. 如下:
列表如下:
每次Quick Deployment Job运行结束之后, 该列表中的items都会被清空.
如果我们使用方法ContentDeploymentJob.AddQuickDeployObject 来指定某个非publishing页面(因为publishing页面不需要我们编程来标记为需要quick deploy), 比如说图片, 文档之类的item需要被quick deploy的话, 正常情况下, 我们标记的item在quick deploy之后也应该被清除掉的. 但是, 如果你在第三个参数, 即itemUrl中赋予的是一个full URL,虽然deploy会成功, item在目标站点集里会出现, 但是在quick deploy items列表中的列表项却永远不会被自动删掉了.
原因是SharePoint在执行quick deploy job后的清理工作的时候, 当我们制定的itemUrl参数的值跟这个item的relative URL匹配的时候, 才会执行删除动作.
这个问题比较难发现, 所以记在这里, 供大家参考.
参考资料
=================
ContentDeploymentJob.AddQuickDeployObject Method
Content Deployment – The complete Guide – Part 5 – Quick Deployment
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律