Visual Studio 2008 .dll文件消失问题

4
好的,我有VS 2008和SVN。当我“重建全部”时,我的一些.dll文件会从bin文件夹中消失。
我将这些.dll文件放在库文件夹中,并从那里引用它们。
当我尝试发布应用程序时,发布失败,我认为它们是相关的。当我重新启动我的web.config文件(更改一些内容并保存)时,这个错误就消失了。然而,发布仍然失败。
当我去到文件夹并更新svn时,所有的文件都会被放回来,但是这种情况会一再发生。
谢谢。

这是什么类型的Web项目?Web应用程序项目(带有.csproj文件)还是文件夹/2005样式(没有.csproj)? - Kev
5个回答

4
我认为您所说的“Bin”文件夹是指Visual Studio组装应用程序可执行版本的构建位置。
通常情况下,我发现手动更改Bin文件夹是遇到“新的痛苦世界”的好方法。只要让Visual Studio自行处理目录并让它保持原样,我的问题就会消失。
如果您的项目引用了DLL,请将它们标记为“Copy Local”(在解决方案资源管理器中选择它们,在属性面板中配置),Visual Studio会确保它们被复制过来。
另外注意:由于Bin目录由Visual Studio管理,并且可以完全重现,因此我建议不要将其(以及其同级Obj)纳入源代码控制。

我曾经遇到过类似的问题,但是 DLL 文件是从 bin 文件夹中引用的。一旦我添加了引用并将 "Copy Local" 设置为 false,它就不会被删除了。谢谢! - pauloya

2

您需要在引用中指定“Copy Local”选项,这将把它们从库文件夹复制到您的bin目录中。通常,您只应该在源代码控制(在库文件夹中)中保留DLL文件的一个副本。如果您将bin文件夹纳入源代码控制,则可能会在构建时遇到问题。


0
听起来构建过程会在构建时移除您的bin目录中的内容。
当你说你正在从库文件夹中引用它们时,我不明白它们也存在于bin目录中。
您的发布可能因其他原因而失败,最好发布错误信息。
更新SVN会将文件恢复到最新版本,因此如果没有文件,则最新版本是存在于您的仓库中的版本。
需要检查的事项:
- 您可能会在构建过程中收到错误消息-听起来DLL实际上是从解决方案中的其他项目输出的,因此您应该检查它们是否正在正确构建或是否正在输出到不同的目录而不是bin文件夹中。 - 您的Subversion仓库可能不应该包含任何二进制或中间文件,例如dll、lib、exe、suo、ncb等,但这些是主要的文件类型。 - 在这里发布更多详细信息-从声音来看,似乎您可能忽略了这里没有发布的错误。

不,我的构建很好,单独的项目也都很好。我同意检查一些.dll文件并不是一个好主意,但我认为将它们移除并不能帮助解决问题。 - Sara Chipps

0

我之前在使用 Rebuild 时也遇到了这个问题 - 我通过将那些引用的 dll 的文件属性标记为只读来解决它。

是的,这很混乱,但它让 VS 不会碰我的 dlls!


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接