用于编译大型 ASP .NET 应用程序的可用选项

Posted

技术标签:

【中文标题】用于编译大型 ASP .NET 应用程序的可用选项【英文标题】:Available options for compiling a large ASP .NET application 【发布时间】:2010-01-14 15:07:17 【问题描述】:

我已经开始处理一个现有的大型 ASP.NET 项目,我很想获得一些反馈,以更好地组织整个项目。 This question 有点相关,但没有足够的具体细节来帮助像我这样的 ASP.NET 新手。

该网站并不十分复杂。可以应用许多主题来为用户提供不同的样式和功能,并且主题之间的大多数常见元素都放置在 UserControls 中。

问题是,当项目被编译时,整个东西被构建到一个单一的、巨大的 DLL 中。这意味着,对多个 UserControl 进行更改,然后一次推出一些更改,即使不是不可能,也是非常困难的。

不幸的是,我们不得不假设 Visual Studio 2003 和 .NET 1.1。

就像我说的,我是 ASP.NET 新手,所以要温柔。

有没有办法以不同的方式做事,让每个 UserControl 都有自己独立的 DLL? 我是否可以进行其他更改以更轻松地小批量推出更改?

【问题讨论】:

【参考方案1】:

我目前的工作方式是编译多个小型 DLL。控件通常有自己的独立于对象逻辑的 DLL,因此我们可以在诸如 Windows 服务之类的事物中使用对象。不过,这确实需要重新编译整个项目。

我们使用 Cruisecontrol.net,它有一些简洁的功能,可以在后台构建整个项目。您可以设置项目,以便在更改 DLL 时,巡航控制将重新编译每个引用该 DLL 的项目。这是一个非常方便的功能,可以减轻任何人作为构建大师的责任。您只需等待巡航控制来构建项目,并在完成后收到成功/失败电子邮件。不确定这是否是您要查找的内容。如果您需要更多帮助,我很乐意与您一起来回走动!

祝你好运!!

【讨论】:

让我们从一个真正的基础开始 :) 在 VS 中我需要做什么才能让每个控件都有自己的 DLL?这似乎不是 UserControls 的默认行为。 您将创建一个新的“类库”项目并向其添加一个新的用户控件...。类库将编译为一个单独的 DLL,您可以将其添加为项目的引用 那么,最后,我将拥有一个包含所需项目数量的单一解决方案?解决方案中的每个项目都将编译为一个 DLL,然后我可以根据需要移动它。我说的对吗? 是的!绝对......我们没有将我们的 DLL 集中在一个解决方案下......我们所有人都在他们自己的解决方案中......但你可以用任何一种方式......每个项目都将编译成自己的 DLL您可以在任何地方使用 DLL。我们把所有的 DLL 放到一个 UNC 路径中(类似于 \\server01\productionlibrary),我们所有的应用程序都引用 UNC 路径,这只是我们保持事情相对健全的方式。当我们编译我们的 DLL 时,我们将发布版本放到 UNC 路径中以供将来使用。 很高兴知道。感谢您的信息!

以上是关于用于编译大型 ASP .NET 应用程序的可用选项的主要内容,如果未能解决你的问题,请参考以下文章

不同 ASP.NET 缓存选项的优缺点

ASP.NET MVC 中的非字符串角色名称?

理解 ASP.NET 预编译

asp.net core 入口程序

在 ASP.NET vNext 中,为啥没有即时重新编译代码?

使用 MSBuild 预编译 ASP.NET Web 应用程序