我们希望有几个使用相同母版页的内部 Web 应用程序。有没有办法将母版页存储在所有项目引用的公共库中?
4 回答
你可以这样做,但它很困难并且有很多缺点。
这个过程也类似于打包用户控件。基本上,您有一个包含母版页的 Web 应用程序项目。您可以使用 aspnet_compiler 将其预编译成一组 dll。
然后您可以使用 ilmerge.exe 将它们全部放入一个 dll 中,然后您可以从其他项目中引用该 dll。
您仍然需要标记才能使您的页面在设计器中正确呈现,因此您可能还必须调查 VirtualPathProviders。
这是一个笨拙的解决方案,它有很多缺点。
鉴于这些模块是同一个 Web 应用程序的一部分,您应该看看这种方法:
基本上,您有一个根 Web,它被设置为(唯一的)IIS Web 应用程序。您可以通过创建 ASP.NET Web 应用程序项目插入新的 Web 模块并将其物理放置在根 Web 下。将构建目录设置为根 web 的 bin,例如。“..\垃圾桶”。不要创建 IIS 应用程序/虚拟目录。
因此,每个 web 模块都编译成自己的 DLL,这本身就是一件好事。编译时,它与根网站“合并”。
这是共享母版页和用户控件的好方法,并且在不同的项目/程序集中拥有网站的不同部分。母版页和用户控件甚至可以在设计模式下工作。
听说这个可以用,没试过。
创建一个单独的项目来容纳您的母版页,因为所有母版页都类似于用户控件并内置在它们自己的单独程序集中。运行构建并尝试引用母版页的程序集。
同样,未经测试,只是我以前读过的东西。
祝你好运!
希望这有助于 跨应用程序共享母版页
享受.. :)