我已经创建了一个新的ASP.NET(.NET框架)网站(不是核心),当我运行该项目时,我会在bin文件夹中创建以下文件- website.dll,website.dll.config,website,pdb。
1)是否始终为网站创建这些内容?
我宁愿没有它们,因为当我想对.cs文件进行更改时,dll需要更新,这将重置所有会话。2)如何做到这一点?
我以前的asp.net网站和这些文件从来没有得到创建,所以我有点困惑。旧的网络版本不这样做?
仅供参考项目设置- .NET Framework 4.7.2,输出类型为类库(其他选项为控制台应用程序和控制台应用程序)。
1条答案
按热度按时间6vl6ewon1#
您有两种类型的asp.net Web表单项目。
A)一个asp.net网站。
当你创建一个asp.net网站的时候,你不需要使用file-〉open-〉project,而是使用file-〉open web site。
对于上面的网站,每个asp.net页面都有一个相应的cs,或者vb.net页面的代码。你可以修改一个页面(比如标记或代码),点击保存,你就完成了。这样的页面(和代码)是由IIS(Web服务器)动态编译的。
很多人都喜欢上面的设置,因为在很多情况下,如果Web服务器在你的同一个网络上,你可以直接打开实时站点。做一些修改,按ctrl-s,你就完成了。当然,这样每个使用的页面都会导致一个.dll被创建。
所以,以上仍然是一个选项,你可以使用(和你喜欢的是在过去使用)
不过,还有第二个选择,
Asp.net 网站应用程序。
这里的关键词/术语是“应用程序”。
在asp.net网站应用程序中,您有一个标准的sln(项目文件),在进行新的更新或部署之前,您必须重新构建和重新编译整个站点。
这意味着即使只更改一行代码,也会迫使您对网站进行完全的重新部署。然而,尽管这对于新部署来说有些“痛苦”,但它仍然是一个更受控制的环境。这种选择还意味着Visual Studio(vs)在部署之前进行编译。
这种设置有很大的优势。你可以包含多个项目和程序集(并且可以获得更好的编译时间分辨率)。所以,越高级的开发人员,越喜欢使用git,并采用类库和对象的使用?
编译时检查越多,在开发周期中采用的类对象和库就越多,你就越喜欢应用程序开发方法。正如前面提到的,享受更好的引用管理、编译和更大项目的管理会有一个很大的惩罚--你失去了“快速和肮脏”的部署选项。
因此,您必须预编译站点/代码,然后运行它。IIS不进行编译(这比管理其他外部代码库更重要)。在大多数情况下,对于网站,要向项目添加新的程序集,.dll文件将被放置在bin文件中。(我一点也不喜欢这样)。
我更喜欢当我做一个干净的项目,整个bin文件夹和任何dll的是100%吹出的水,并不存在了。如果你使用一个网站,那么你会,也必须有一个大杂烩.dll的散落各地。和每一个单一的网页与代码背后创建一个. dll。
因此,虽然您的手在某种程度上“更束缚”于asp.net网站应用程序,但从开发人员的Angular 来看,其优势远远超过部署所需的额外工作/努力。
我不知道,但我不知道你为什么喜欢或不喜欢在编译时为你管理所有引用的程序集,它们都被编译,并为你放置在bin文件夹中。无论是桌面应用程序,控制台应用程序,编译过程的特点是收集所有引用的程序集和.dll文件,然后转储/放置/编译/管理/将它们放入bin文件夹中。
还有更好的吗?当你发布的时候,你可以选择将所有的.dll“合并”到一个dll中。这真的很像使用链接器进行软件开发。
另一个很大的优势是,你可以说开发新的rosyln编译特性。(自由格式的sql文本真的很好)。因为vs是为你做编译,那么你不必确保网站和IIS需要高级编译器选项。
所以,你更喜欢哪一个可以归结为:
您是否重视开发人员功能、更好的程序集编译时解析、让VS为您编译代码,或者您是否希望将代码发送到网站,并让IIS进行编译?
以上也意味着您的网站在使用网站选项时需要源代码。这可能是一些开发人员的问题,甚至是安全问题。因为任何对此类网页的修改都会自动触发IIS为您重新编译该网页+代码。
对于asp.net网站应用程序,则不会发生服务器IIS编译您的代码,更好的是,在编译时剥离.cs(或vb)页,剥离源代码,并且源代码页(代码隐藏)从不放置在服务器上。因此,您只得到.dll和源aspx页,而不是在服务器上发布的源代码页。
从vs 2022版本开始,两个模板选项都被支持。那么,如果你想使用或返回使用网站而不是应用程序开发呢?你可以做出选择。只要使用文件-〉打开网站,并且不再使用.sln(项目文件)。
并且您可以在创建新网站时选择“asp.net网站”,或者选择首选的(被许多人所喜爱的)“ASP.NET网站应用程序”。
因此,对于许多站点--尤其是那些稍旧的站点,开发人员通常选择Web站点选项--部署和更新确实比选择应用程序要少得多,而且要容易得多。尽管对Web站点进行小的更新要容易得多,但我仍然更喜欢选择应用程序,因为它在引用、编译而只是整体的一般应用程序管理功能。可能对您的情况并不重要,如果当前站点是一个网站(不是网站应用程序),那么我建议您继续并保持代码和站点“原样”,而不是转换为应用程序。
奇怪的是,你的内裤都扭曲了有一些.dll的出现在bin文件夹在编译时间,而不是一个巨大的.dll的创建为每个网页+代码背后发生什么时,使用一个网站。这编译时间和转储的.dll到bin文件夹?这是如何所有的控制台,桌面,并且事实上,大多数人在使用网站时都会感到困惑并错过这种软件开发方法-因为现在是IIS进行代码编译,而不是您或Visual Studio。
所以上面应该澄清了两种选择之间的区别,以及为什么你会看到与过去项目不同的行为。听起来过去的项目是一个网站,而不是一个网站应用程序。