2013-02-17 57 views
1

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

很抱歉,如果这是一个相当基本的问题,我是新来的Web应用程序的Visual Studio中的概念。

回答

1

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

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

让他们在垃圾箱既可以方便地部署(通过简单地复制Web应用程序文件夹),如果你是在一个共享的主机环境中,你不能访问在安装您的DLL,这可能是你唯一的选择GAC

+0

我们计划迁移到Azure,所以GAC可能会被禁止。此外,我们只打算在一个Web应用程序中专门使用这些dll。谢谢! – QFDev 2013-02-17 10:16:28

+0

@QF_Developer依赖... Azure现在拥有虚拟机:)所以如果你使用这个选项,你可以做任何你想做的事情。这就是我使用,因为我想要更多的控制。 – scartag 2013-02-17 10:17:26

2

作为一般规则,我从来没有直接把任何东西在bin文件夹。我总是允许构建过程将dll或其他文件复制到bin文件夹。

如果你添加一个引用,并确保“复制本地”设置为true,则该DLL将构建过程中复制。这具有许多优点,特别是在使用版本控制时。

至于你应该把这些文件,我通常创建在解决方案级别的文件夹,并把DLL的那里,然后我将它们添加从该位置引用。这使得它们可以很容易地被检入到版本控制中(和许多版本控制系统一样,被标记为只读)。

当检查文件到bin文件夹版本控制,那么你将遇到很多问题。另一个问题是,当你需要“清理”bin文件夹时,如果文件存在会导致问题。如果您使用我描述的方法,您可以随时删除bin文件夹中的所有文件。

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