添加对程序集的引用,而程序集也引用了项目引用

时间:2015-10-15 03:25:41

标签: c# dll reference dependencies embed

我有解决方案1,它有2个项目 - >项目A和项目B.项目A参考项目B.(即项目A依赖于项目B)。

我也有解决方案2,它有多个项目。其中一个项目引用了DLL A(从解决方案1中的bin \ debug of Project a中复制到解决方案2中的文件夹中)。

解决方案2编译好。但是在解决方案2的运行时,当代码尝试从依赖于DLL B的DLL A执行某些代码时,它会抛出一个异常,表示无法加载文件或程序集DLL B.如果我添加对DLL B的引用,那么错误消失了。

我是否需要引用DLL B,或者是否有某些方法可以避免在解决方案2中引用DLL B,因为它没有明确使用它?

3 个答案:

答案 0 :(得分:0)

Visual Studio中业务的第一个顺序是,如果您可以访问源代码csproj,那么最好将这些项目加载到它所依赖的每个解决方案中。业务的第二个顺序是,在解决方案中引用具有项目的库的最佳方式是引用整个项目,而不是它的dll输出。您不必解决路径问题(调试/发布)并且它工作得更加顺畅,并且在编译期间可以肯定,使用最后更新的dll或者在必要时编译它。

答案 1 :(得分:0)

DLL B需要位于SLN 2中引用DLL A的项目的输出目录中。您不需要在项目中明确引用DLL B,只要它在物理上存在。

当您运行时,DLL A将自动复制到同一文件夹,因为您为项目提供了引用。

假设您正在调试模式下运行,那么默认情况下您的输出目录应为:

(your project directory)\bin\Debug

答案 2 :(得分:0)

如果您在项目中使用任何依赖于第二个DLL的引用DLL,则需要在解决方案中添加这两个DLL。

因此,您需要在解决方案2中添加DLL B,因为它在DLL A中使用。