如何在不同网站之间共享用户控件/功能?

3

我们有两个基于Episerver的asp.net网站。
使用Telerik Asp.net控件。
我们希望在这两个网站中都能使用一些功能。
现在一个网站使用webparts/usercontrols,另一个网站使用usercontrols。

是否有办法在这些网站之间共享功能?
我希望能够在这些网站之间共享usercontrols。

3个回答

3
由于您谈到了用户控件,我假设您还有包含在用户控件中的.ascx文件,这使得问题变得棘手。
我想理想的解决方案是将所有内容移动到服务器控件中,这样您就可以引用程序集,但如果您继承了使用.ascx文件的其他控件,则可能会受到限制。
处理的一种方法是使用Visual Studio中的文件链接功能(添加现有文件,单击向下箭头,选择链接选项),以在同一解决方案中的项目之间共享相同的物理文件。 这并不理想,因为您必须确保在部署之前将ascx文件复制到两个站点中(我以前使用过后构建脚本完成此操作),但仍然存在许多容易出错的地方。
另一种更加技术复杂的选择,但可能是处理它的“更好”方法,是使用虚拟路径提供程序来代替您完成工作。 这里是一篇介绍如何使用虚拟路径提供程序来实现您想要做的事情的文章。

是的,我有ascx文件,我会查看您建议的链接。 我知道有服务器控件选项,但我更喜欢保留ascx文件的完整性。 - Jimmy Engtröm

2

开始一个新的类库项目,在两个网站项目中引用该项目,然后将常见的控件和代码提取到库项目中。


0

如上所述,您可以将文件放置在实时环境中的VPP目录中,这样只需将ASCX文件复制到一个文件夹中即可进行两个站点代码前端更新。但是,Code-behind更新需要为两个站点构建并覆盖DLL。

如果您在开发环境中使用SVN,还可以从其中一个项目设置svn:external链接文件夹,这样只需在一个存储库中拥有代码及其修订历史记录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接