2008-11-14 122 views
4

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

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

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

当我去文件夹和更新svn把他们所有当然回来,但它只是发生了一遍。

谢谢。

+0

什么样的Web项目是什么? Web应用程序项目(带有.csproj文件)或文件夹/ 2005风格(no .csproj)? – Kev 2008-11-14 03:21:57

回答

4

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

通常,我发现手动更改Bin文件夹是遇到“痛苦的新世界”的好方法。一旦我开始让Visual Studio做它想要的目录并且让它独立,我的问题就消失了。

如果您从您的项目中引用的DLL,它们标记为“复制本地”(在Solution Explorer中选择它们,配置在属性面板中)和Visual Studio将确保他们跨越了复制。

备注:由于Bin目录由Visual Studio管理,并且具有完全可重复性,所以我建议它(和它的兄弟Obj)不应受源代码控制。

+0

我有一个类似的问题,但DLL是从bin文件夹中引用的,一旦我添加引用并将“Copy Local”设置为false,它就会停止删除它。谢谢! – pauloya 2009-09-23 09:00:31

0

听起来像构建过程删除构建您的bin目录的内容。

我不会在你说你从库文件夹中引用它们的位置上忘记了它们,它们也存在于bin目录中。

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

更新SVN会将文件恢复到最新版本 - 所以如果你没有文件,最新版本是存在于你的版本库中的版本。

检查事项:

  • 你可能在你的建设 - 接受错误的,它听起来就像DLL的实际上是从解决方案中的其他项目的输出,所以你应该检查自己是否正常,或建设他们正在被输出到一个不同的目录,而不是你的bin文件夹。

  • 你的Subversion版本库可能不应该有任何二进制或中间文件,如dll,lib,exe,suo,ncb等等,但这些都是主要的。

  • 在这里发布更多详细信息 - 从它的声音,似乎你可能会忽略你没有发布在这里的错误。

+0

没有,我在建筑精美,个别项目builiding罚款。我同意在某些.DLL的chiecking是不是一个好主意,但我不认为把他们从会有所帮助。 – 2008-11-14 03:39:28

2

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

+0

这是我的猜测! – 2008-11-14 07:32:29

0

我以前在使用重建时看到过这个 - 我通过在浏览器属性中将这些引用dll标记为ReadOnly来修复它。

是的,这是hacky,但它保持VS的爪子离开我的dll!

0

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