【问题标题】:Visual Studio 2008 .dll disappearing issuesVisual Studio 2008 .dll 消失问题
【发布时间】:2008-11-14 03:07:47
【问题描述】:

好的,所以我有 VS 2008 和 SVN。当我“重建所有”时,我的一些 .dll 从我的 bin 文件夹中消失了。

我在库文件夹中有这些 .dll,这就是我引用它们的地方。

当我去发布应用程序时,发布失败,我认为它们是相关的。当我重新启动 web.config(更改某些内容并保存)时,此错误消失。但是,发布仍然失败。

当我转到文件夹并更新 svn 时,当然会将它们全部放回去,但它又会再次发生。

谢谢。

【问题讨论】:

  • 这是一个什么样的网络项目? Web 应用程序项目(带有 .csproj 文件)或文件夹/2005 样式(无 .csproj)?

标签: visual-studio-2008 dll c#-3.0 publish


【解决方案1】:

我假设“Bin”文件夹是指 Visual Studio 组装应用程序的可执行版本的构建位置。

一般来说,我发现手动更改 Bin 文件夹是遇到“痛苦的新世界”的好方法。一旦我开始让 Visual Studio 对目录做它想做的事,我的问题就消失了,我不理会它。

如果您的项目引用了 DLL,请将它们标记为“复制本地”(在解决方案资源管理器中选择它们,在属性面板中进行配置),Visual Studio 将确保为您复制它们。

附注:由于 Bin 目录由 Visual Studio 管理并且完全可重现,我建议它(以及它的同级 Obj)不应受源代码控制。

【讨论】:

  • 我遇到了类似的问题,但是从 bin 文件夹中引用了 DLL,一旦我添加了引用并将“复制本地”设置为 false,它就会停止删除它。谢谢!
【解决方案2】:

您需要在引用中指定“复制本地”,这会将它们从库文件夹中复制到您的 bin 目录中。通常,您应该只在源代码管理中(在库文件夹中)保留一份 DLL 副本。如果你控制了 bin 文件夹的源代码,你可能会遇到构建问题。

【讨论】:

    【解决方案3】:

    听起来构建过程会在构建时删除 bin 目录的内容。

    我不明白您说您从库文件夹中引用它们的位置 - 而且它们也存在于 bin 目录中。

    您的发布可能由于其他原因而失败 - 发布错误最有帮助。

    更新 SVN 会将文件恢复为最新版本 - 因此,如果您没有文件,则最新版本就是您的存储库中存在的版本。

    检查事项:

    • 您可能在构建时收到错误 - 听起来 DLL 实际上是从您的解决方案中的其他项目输出的,因此您应该检查它们是否正确构建,或者它们是否被输出到不同的目录您的 bin 文件夹。

    • 您的 subversion 存储库可能不应该包含任何二进制或中间文件,例如 dll、lib、exe、suo、ncb 和其他一些文件,但这些是主要文件。

    • 在此处发布更多详细信息 - 从它的声音来看,您似乎忽略了您未在此处发布的错误。

    【讨论】:

    • 不,我正在构建良好,个别项目正在构建良好。我同意加入一些 .dll 文件不是一个好主意,但我不认为将它们删除会有帮助。
    【解决方案4】:

    我以前在使用 Rebuild 时看到过这个问题 - 我通过在资源管理器属性中将这些引用 dll 标记为 ReadOnly 来修复它。

    是的,它很 hacky,但它让 VS 的爪子远离了我的 dll!

    【讨论】:

      【解决方案5】:

      您可能有一个默认网站,而不是一个 Web 应用程序项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-12
        • 1970-01-01
        相关资源
        最近更新 更多