我刚刚继承了一个我想要重构的 SharePoint 项目,并采用所有通用/可重用代码并将其放置在解决方案中的一个单独项目中。该解决方案已经有多个项目,并且几乎所有项目在解决方案中的一个或多个其他项目之间都有依赖关系。
我希望将所有依赖项(SPMetal 类、静态方法、实用程序等)放入一个项目中,以便公共代码只需要一个引用(并且没有代码克隆)
我重构了项目,现在我正在尝试将此代码部署到 SharePoint 服务器(通过 VS2012 部署到本地开发服务器和通过 WSP 部署到生产服务器)。我最初尝试Common.dll
在所有其他项目的“附加程序集”列表中添加(在Package
文件中),但这导致所有 WSP 部署失败并出现以下错误:
Cannot add the specified assembly to the global assembly cache
这是因为Common.dll
owstimer 和其他一些服务正在使用 并且无法删除。
我的下一个想法是将代码部署为一项功能,然后使所有其他功能都依赖于它,但是,我不知道该怎么做。有没有办法让一个功能只包含类?
是否有更好的方法使公共代码可用于多个 SharePoint 项目?