我有一个Web应用程序项目。我有我在bin /文件夹中存储的项目中引用的DLL。好吧,每当我从Visual Studio进行重建或清理时,它都会删除该文件夹中的所有内容。我该如何防止这种情况发生?
答案 0 :(得分:51)
不要自己装垃圾桶。 bin是二进制文件的目标文件夹 - 它不是二进制文件的源文件夹。
创建一个lib
文件夹或类似的东西,将第三方二进制文件放入其中。您甚至可能将其命名为“第三方二进制文件”,因为不是每个人都知道“lib”意味着同样的事情。在此文件夹中引用对二进制文件的引用,Visual Studio会在必要时将它们复制到bin
(包括在重建时)。
答案 1 :(得分:8)
我会不再问'为什么'这个问题而只是陈述如何。将文件标记为只读,VS不应删除它们。
答案 2 :(得分:2)
按照John Saunders的说法回答并将.dll放入单独的文件夹中。在我的例子中,我将此文件夹命名为“ServerAssemblies”。然后修改你的项目文件(在我的例子中是.csproj)并添加一个“AfterRebuild”目标。
<Target Name="AfterRebuild">
<ItemGroup>
<ExtraAssemblies Include="$(SolutionDir)ServerAssemblies\**\*.*"/>
</ItemGroup>
<Copy SourceFiles="@(ExtraAssemblies)" DestinationFolder="$(ProjectDir)bin\"></Copy>
</Target>
答案 3 :(得分:1)
您能解释一下为什么必须将它存储在bin文件夹中吗?我总是创建一个单独的文件夹,例如/ components,我存储所有引用的dll。
答案 4 :(得分:-3)
有一点是“不要这样做!”人们遗忘的是源代码控制和第三方软件。使用SVN时,您经常会收到如果使用物理参考而在不在同一物理位置时会产生不匹配的文件。
我正在使用的一个CMS,当你设置另一个“实例”时,预先建立VS项目和解决方案。它倾倒在它需要的一些dll中......但是如果你重建它们就会消失。
两种情况下的简单解决方案都是如上所述,并将其称为完成。