表达式生成器需要 SPContext 才能运行

问题描述 投票:0回答:1

我在使用 Visual Studio 2008 网站和 SharePoint/MOSS 2007 时遇到问题。我们之前在 SharePoint 结构下放置了 2 个 Web 应用程序项目,但由于项目文件和源代码控制的性质,它在我们的团队开发中造成了问题环境。我决定从 Web 应用程序切换到网站以删除项目文件,直到我有时间将源代码管理更改为 TFS。一切正常,但是当我尝试手动构建其中一个网站时,出现以下错误:

此表达式生成器需要 SPContext 才能运行

现在这不是一个真正的问题,因为网站的性质以及它们在加载时如何根据需要进行编译。但这对我的开发团队来说是一个问题,因为出于各种原因,我们真的希望能够获得成功的构建。

问题是通过使用我们使用的自定义表达式生成器而出现的,该生成器在运行时仍然可以正常工作。只有在编译过程中才会出现错误。

任何关于如何克服这个问题的想法或想法将不胜感激。

干杯,

布伦丹

c# sharepoint visual-studio-2008 sharepoint-2007
1个回答
0
投票
许多 SharePoint 应用程序使用

SPContext.Current 来确定它们正在运行的当前 SharePoint 上下文。进行更改后,这在构建过程中显然不再可能。

一种选择是构建某种保护,如果找不到有效的 SPContext,则根据需要使用新的 SPSite/SPWeb 对象创建该保护以提供该上下文。这可能需要一些重新架构,具体取决于表达式生成器的设计方式,特别是因为您现在需要正确处置创建的 SPSite 和 SPWeb 对象(使用 SPContext 时不需要)。

另一种选择是使用模拟框架,例如 Typemock Isolator。这将模拟/伪造 SPContext。但是,我相信您也需要重新构建代码才能使用它。从好的方面来说,您可以只使用 SPContext。

© www.soinside.com 2019 - 2024. All rights reserved.