删除DLL时,项目引用的DLL的路径会“通过魔法”更改

时间:2012-02-03 10:13:46

标签: c# visual-studio-2010

这是情况:

我有一个包含库DLL的文件夹,它不是我的解决方案的一部分 - 假设它是.\libs。 我添加了对这些DLL的引用。然后我建立。一切都很好。

如果我然后删除libs文件夹并重建我的解决方案,编译仍然成功!很奇怪 - 我原本期望编译错误,因为库dll不存在!

但是查看Visual Studio中的引用属性,我发现引用路径已从.\libs\foo.dll更改为myproject\bin\Debug\foo.dll。所以它从旧的构建输出中获取引用的DLL。

如果我在文本编辑器中打开myproject.csproj,我会看到引用的HintPath仍为.\libs\foo.dll。如果我重新创建libs文件夹,visual studio仍然使用myproject\bin\Debug\foo.dll(它不会恢复为我想要的实际DLL!)

这是预期的行为吗? 有没有办法阻止这种行为,因为它导致我的问题 - 特别是当我想用不同版本的lib重建myproject时:有一半我发现我使用的是不同于我想要的版本。

1 个答案:

答案 0 :(得分:0)

这不是魔术。您的DLL的Copy Local属性可能设置为true,这就是全部。
将其设置为false将获得所需的行为。