【问题标题】:Where to store component DLLs?在哪里存储组件 DLL?
【发布时间】:2013-02-01 21:59:34
【问题描述】:

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

对不起,如果这是一个相当基本的问题,我是 Visual Studio 中 Web 应用程序概念的新手。

【问题讨论】:

    标签: .net web-applications dll class-library bin


    【解决方案1】:

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

    如果您添加一个引用,并确保“本地复制”设置为 true,那么 dll 将在构建期间被复制。这有很多优点,尤其是在使用版本控制时。

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      将它们放在 bin 中可以轻松部署(只需复制 Web 应用程序文件夹),如果您处于无法在 GAC 中安装 dll 的共享托管环境中,这可能是您唯一的选择

      【讨论】:

      • 我们计划迁移到 Azure,因此 GAC 可能不受限制。此外,我们只打算在单个 Web 应用程序中专门使用这些 dll。谢谢!
      • @QF_Developer 这取决于...... Azure 现在有虚拟机 :) .. 所以如果你使用这个选项,你可以做任何你想做的事情。这就是我使用的,因为我想要更多的控制权。
      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 2013-09-10
      • 2011-01-21
      • 2011-03-06
      • 1970-01-01
      相关资源
      最近更新 更多