.net 在哪里存储组件DLL?

.net 在哪里存储组件DLL?,.net,web-applications,dll,class-library,bin,.net,Web Applications,Dll,Class Library,Bin,我目前正在将一个VB.NET网站迁移到一个VB.NET Web应用程序。以前,我会将所有组件DLL(第三方类库)存储在bin文件夹中,并在运行时编译它们。我已经在新应用程序中手动添加了对DLL的引用,但是bin文件夹是存储这些附加DLL的理想位置吗?这被认为是最佳实践吗?当我创建新版本时,它会干扰应用程序生成的DLL吗 很抱歉,如果这是一个非常基本的问题,我对Visual Studio中的Web应用程序的概念还不熟悉。不,它不会干扰应用程序生成的DLL 如果这些是你在很多应用程序中使用的DLL,

我目前正在将一个VB.NET网站迁移到一个VB.NET Web应用程序。以前,我会将所有组件DLL(第三方类库)存储在bin文件夹中,并在运行时编译它们。我已经在新应用程序中手动添加了对DLL的引用,但是bin文件夹是存储这些附加DLL的理想位置吗?这被认为是最佳实践吗?当我创建新版本时,它会干扰应用程序生成的DLL吗


很抱歉,如果这是一个非常基本的问题,我对Visual Studio中的Web应用程序的概念还不熟悉。

不,它不会干扰应用程序生成的DLL

如果这些是你在很多应用程序中使用的DLL,你可以考虑在GAC中注册它们。


将它们放在bin中便于部署(只需复制web app文件夹),如果您所在的共享托管环境无法在GAC中安装DLL,这可能是您唯一的选择。一般来说,我从不直接将任何内容放在bin文件夹中。我始终允许构建过程将dll或其他文件复制到bin文件夹

如果添加引用,并确保“copy local”设置为true,则在生成期间将复制dll。这有许多优点,尤其是在使用版本控制时

至于这些文件应该放在哪里,我通常在解决方案级别创建一个文件夹,并将dll放在那里,然后从该位置添加它们作为引用。这使它们可以轻松地签入版本控制(并像许多版本控制系统一样标记为只读)

将文件签入bin文件夹中的版本控制时,会遇到很多问题。另一个问题是,当您需要“清理”bin文件夹时,其中的文件可能会导致问题。如果您使用我所描述的方法,您总是可以删除bin文件夹中的所有文件


更好的方法是使用NuGet包。如果您想要的文件不是现有NuGet软件包的一部分,那么您可以创建自己的文件并运行自己的本地NuGet服务器。

我们计划迁移到Azure,因此GAC可能是禁止访问的。此外,我们只打算在单个web应用程序中专门使用这些DLL。谢谢@QF_开发者,这取决于。。。Azure现在有虚拟机:)。。因此,如果使用此选项,您可能可以做任何您想做的事情。这就是我使用的,因为我想要更多的控制。