如何在ASP.NET中的Web应用程序之间共享用户控件?

这个问题是关于 sharing resources between web applications的问题的后续行动,因为我还没有找到一个很好的解决方案.

我有一个Web应用程序,其中包含三个其他Web应用程序共享的用户控件和资源.

Solution
|
+-CommonControlsWebApp
| +- resources
| |  +- images
| |  +- scripts
| |  +- stylesheets
| +- UserControls
| 
+-WebApp1
| 
+-WebApp2
| 
+-WebApp3
@H_404_5@ 
 

这就是我现在所知道的:

我无法将CommonControlsWebApp编译成一个dll,因为我正在创建用户控件.这只能使用自定义服务器控件,其中所有内容都在代码隐藏文件中.所以我需要一种在四个项目之间共享ascx文件的方式.
>将CommonControlsWebApp中的文件复制到另外三个项目中,不会在解决方案资源管理器中更新其文件.当在CommonControls中添加重命名文件时,我将不得不在所有三个WebApps中“添加项目”.
>更改为网站模型将会弥补这一点,但是如果我这样做,我担心WebApp1-3的编译时间.
>“添加链接”不适用于目录.
>我可以使用Subversion来共享项目之间的文件,但我相信,如果我正在开发一个用户控件,我必须通过一个WebApps进行测试,这将需要一直检查文件.

ASP.NET没有一个很好的解决方案吗?你们如何组织大型Web应用程序?

编辑:非常感谢所有的答案.现在我将使用构建事件复制我的用户控件,然后查看是否有时间将其重构为服务器控件.

解决方法

在我现在的公司,我们的方式是确保CommonControlsWebApp
是WebApplication,而不是网站.然后,您将使用文件夹的名称来帮助将其标识为与各个Web应用程序不同的常见文件夹. (CommonUserControls而不仅仅是UserControls)

在其他Web应用程序中,您可以为CommonUserControls等创建一个虚拟目录,并为CommonControlsWebApp.dll添加基于文件的引用

这要求您使用IIS进行开发(而不是casini),Visual Studio不会相信控件真的存在,但它将在运行时工作,只需对blahblah.ascx或blahblah.master的警告进行构建即可.路径无效.

如果您使用常用的母版页和Visual Studio 2008,您将需要SP1 for 2008,并在各个Web项目的根目录中使用__fallback.master进入设计模式.

但是,我在另一个线程上看到了这一点,我将会进一步研究如下:
http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...