我正在使用C#为Asp.Net构建一个Web应用程序框架。该框架由dll文件,带有代码隐藏文件的aspx文件,App_Code中的代码文件,css文件和图像组成。
我查看了Visual Studio 2008中的“Web应用程序”项目。这有助于删除所有代码文件并将它们放入bin文件夹中的一个dll中。但是,所有其他文件仍然存在。
我认为必须可以将这些文件放在资源文件中并将其包含在dll文件中。我看到一些控制提供商会这样做,比如Telerik。
你是怎么做的?并且有一些自动化过程可以执行此操作,因为文件数量超过1000个。
任何帮助都非常有用!
答案 0 :(得分:3)
您实际上可以将站点缩减为单个程序集,web.config文件和global.asax文件。
为此,请使用嵌入资源将所有静态内容(图像等)嵌入到程序集中。这就像Telerik那样的组件供应商为其控件提供单一程序集部署。 然后可以使用虚拟路径提供程序来提供嵌入式资源。在msdn上有一个good article可以使用虚拟路径提供程序。 在使用Web应用程序项目时,您甚至可以将页面(.aspx)和用户控件(.ascx)嵌入为资源。
使用路由模块,您可以实现几乎透明的URL转换到嵌入在程序集中的页面。
但是有一些限制。
答案 1 :(得分:2)
ASP.NET真的没有“编译到单个DLL”的方法(不幸的是 - 我多次希望它自己!)。
正如您所指出的,Web应用程序有助于减少混乱。
Web部署也有帮助,因为网页代码被编译成单个DLL,您实际上可以从安装中删除*.aspx/*.ascx
文件(如果它不可更新),但是您仍然有很多其中包含*.compiled
个文件。
所以不幸的是,我认为,在这个时间点,没有针对您的要求提供“开箱即用”的解决方案(据我所知,到目前为止,VS2010并没有计划这样的事情/ ASP.NET 4.0要么。)
马克
答案 2 :(得分:1)
ASP.Net有一种“使用Microsoft的插件编译到单个DLL”。看看“Web部署”添加。这将使您能够将几乎所有内容编译到单个DLL中,包括ASCX控件(这是一种轻松重新分发这些内容的好方法)。