测试背景
对VS,假设a.exe程序依赖一个b.dll,而这个b.dll又依赖c.dll与第三方的d.dll,c.dll依赖第三方的e.dll那么在生成a.exe的时候,会不会将b.dll、c.dll、d.dll、e.dll也生成且复制到a.exe的生成目录呢?
新建工程测试
在VS的一个解决方案中添加a.exe, b.dll, c.dll的工程,关系如下:
a依赖b,b依赖c与d,其中c是项目,d是三方dll
这里直接写测试结果了:
1.对于a.exe直接依赖的dll,无论是否代码中实际引用,都在生成的时候复制
2.对于b.dll引用的c.dll,除非在代码中实际引用了,否则是不会复制
3.更新的规则是:有实际代码依赖的dll更新了代码,生成a.exe才会再次生成,当然如果选择重新生成则会跟着重新更新
4.生成或重新生成b.dll,都不会自动将新dll复制到a.exe的目录