4

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

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

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

当我转到文件夹并更新 svn 时,当然会将它们全部放回原处,但随后它又重新发生了。

谢谢你。

4

5 回答 5

4

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

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

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

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

于 2008-11-14T06:57:44.880 回答
2

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

于 2008-11-14T03:28:20.793 回答
0

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

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

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

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

检查事项:

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

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

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

于 2008-11-14T03:26:36.880 回答
0

我以前在使用 Rebuild 时看到过这个问题——我通过在它们的 Explorer 属性中将这些引用 dll 标记为 ReadOnly 来修复它。

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

于 2008-11-14T03:30:03.520 回答
0

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

于 2009-08-13T19:20:54.313 回答