赞助商

.net – 在同一个解决方案中为多个项目添加相同的“* .dll”引用

发布时间:2019-05-15 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了.net – 在同一个解决方案中为多个项目添加相同的“* .dll”引用脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Visual Studio 2008 .NET C/C++LI解决方案.我的解决方案包括许多子项目.我为每个项目定义一个自定义buid目录调用它的输出.

MySoultion

> MyFirstProject(* .exe)
> MySecondPrject(* .dll)
> …
> MyNthProject(* .dll)

每个子项目使用Log4.net.So我创建一个目录(称为LogBinary),并将log4.net dll放在该文件夹中.然后使用log4net我添加这个dll作为我的每个项目的参考…
但是当我尝试编译我的主要项目(* .exe)时,我收到了大量警告(超过400 …)

只是一个例子:

Warning 110 warning C4945: ‘AbsoluteTimeDateFormatter’ :
cannot import symbol from ‘somepath\log4net.dll’: as
‘log4net::DateFormatter::AbsoluteTimeDateFormatter’
has already been imported from another assembly ‘log4net'”somepath\log4net.dll”

许多警告与

has already been imported from another assembly

为什么我得到这个警告?有没有人有解决方案来添加相同的dll到多个项目(除了使用GAC)

最好的祝愿

解决方法

我终于找到了一个解决这个问题的方法,这不是一个黑客.我在 a response from ‘pyro_serv` on the msdn social site发现了答案:

The fix is to use the “Use Dependencies In Build” and “Use In Build” flags on each VC project references (via the VC properties sheet),and toggle them as appropriate for your case to resolve this error.

所以对于OP的例子看起来像这样:

Solution -> Log4.net
Solution -> Proj1
Solution -> Proj1 -> Log4.net
Solution -> Proj2
Solution -> Proj2 -> Log4.net
...

避免警告的方法是将Build中的Use Dependencies设置为false,以便对Proj1,Proj2,..,Projn的所有引用进行设置.

我刚刚通过演示解决方案验证了这一点,它的效果非常好 – 我无法相信解决方案有多简单,浪费了多少时间找到它!

总结

以上是脚本之家为你收集整理的.net – 在同一个解决方案中为多个项目添加相同的“* .dll”引用全部内容,希望文章能够帮你解决.net – 在同一个解决方案中为多个项目添加相同的“* .dll”引用所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签: