这是情况:
我有一个包含库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时:有一半我发现我使用的是不同于我想要的版本。
答案 0 :(得分:0)
这不是魔术。您的DLL的Copy Local
属性可能设置为true,这就是全部。
将其设置为false将获得所需的行为。