【问题标题】:Is it ok to put stuff in your bin folders?可以把东西放在你的 bin 文件夹中吗?
【发布时间】:2014-09-18 16:36:16
【问题描述】:

好的,所以,我将这个问题指向 iis、.NET、MVC 上的 Visual Studio IDE,但所有类型的答案都很好。

问题:

Q1.可以将项目抱怨的 .ddl 放入调试和发布箱吗?

Q2.如果您已尝试先清理您的解决方案,是否只能执行上述(Q1.)?

Q3. bin 文件夹的规则是什么?

【问题讨论】:

  • 如果您是像我这样的人并且文件很有价值,请小心。我经常删除整个 bin 和 obj 文件夹。您可以将其添加到项目中并设置Don't compileCopy AlwaysCopy if newer 选项,而不是自己复制文件。
  • 您不需要将它们放在 bin 文件夹中。您可以将它们放在项目中的文件夹中,然后添加对它们的引用。当项目构建时,它会将所有引用复制到 bin 文件夹中。或者,如果您需要的 dll 具有 nuget 包,您可以将 nuget 包添加到您的项目中。在一个完美的世界里,你应该能够核对 bin 文件夹并重建你的项目以将它们全部恢复。
  • 我使用的另一个解决方案是创建一个 powershell 脚本来将 X 文件夹中的文件复制到 bin 文件夹。然后我将 EXEC 命令添加到我的项目文件中以运行 powershell 脚本。 asp.net/web-forms/tutorials/deployment/…

标签: c# asp.net-mvc visual-studio iis


【解决方案1】:

是的将你喜欢的任何东西放入你的 bin 文件夹,它不会伤害任何东西。

话虽如此,在理想情况下,您的项目将正确运行 无需手动将文件复制到 bin 文件夹,因此如果您可以将所需文件添加到您的项目并将它们设置为“始终复制” "所以它们会自动出现,这是一个更好的选择。

否则,如果您删除 bin 文件夹(获得真正“干净”的 bin 的常见做法),您必须记住将多余的文件复制回去。这样做就足够了,真的烦人。

【讨论】:

    【解决方案2】:

    出于以下几个原因,我不想在 bin 文件夹中添加所需的 dll:

    1. 我似乎记得 bin 文件夹被清理干净(我认为这是准确的)
    2. 当项目依赖于 bin 文件夹中的外部 dll 时,这意味着 bin 文件夹需要检入源代码管理。默认情况下,源代码控制中省略了 bin 文件夹(无论如何都使用 TFS),因此当签入 bin 文件夹时它会让我失望,并且每个更改的 dll 都是源代码控制本身。

    我首选的解决方案是将 nuget 用于外部资源,但如果不可能,请为外部 dll 添加一个单独的文件夹(我通常称之为 extLib)并签入该文件夹及其内容。

    【讨论】:

    • bin 文件夹有时不会删除“清理”命令中添加的项目。话虽如此,人们一直在删除它们。 +1 关于源代码控制的观点,尽管该文件可能已经在其他地方签入,您只需要复制它。
    【解决方案3】:

    我的答案是不。主要是因为我讨厌将 bin 文件夹检查到版本控制中。将您的 dll 放入外部文件夹并从那里引用它。更好的是,设置您自己的 nuget 服务器并在其中托管您的 dll,或者使用允许您托管 nuget 包的可用服务之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多