gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:51:28 26 4
gpt4 key购买 nike

这个问题是对我关于 sharing resources between web applications 的问题的跟进。 ,因为我还没有找到好的解决方案。

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

解决方案
|
+-CommonControlsWebApp
| +- 资源
| | +- 图像
| | +- 脚本
| | +- 样式表
| +- 用户控件
|
+-WebApp1
|
+-WebApp2
|
+-WebApp3

这是我目前所知道的:

  • 我无法将 CommonControlsWebApp 编译成单个 dll,因为我正在创建用户控件。这仅适用于自定义服务器控件,其中所有内容都在代码隐藏文件中。所以我需要一种方法来在四个项目之间共享 ascx 文件。
  • 将 CommonControlsWebApp 中的文件复制到其他三个项目中不会更新解决方案资源管理器中的文件。在 CommonControls 中添加或重命名文件时,我必须在所有三个 WebApp 中“添加扩展项”。
  • 更改为 Web Site 模型可以解决此问题,但如果我这样做,我担心 WebApp1-3 的编译时间。
  • “添加为链接”不适用于目录。
  • 我可以使用 Subversion 在项目之间共享文件,但我相信,如果我正在开发必须通过其中一个 WebApp 进行测试的用户控件,这将需要我一直重新检入和 check out 文件。

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

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

    最佳答案

    我们现在公司的做法是确保 CommonControlsWebApp
    是一个 Web 应用程序,而不是一个网站。然后,您可以使用文件夹名称来帮助将其识别为与各个 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

    关于asp.net - 如何在 ASP.NET 中的 Web 应用程序之间共享用户控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/710076/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com