Visual Studio C#.dll与项目引用

时间:2016-02-24 16:47:39

标签: c# visual-studio

我的Visual Studio解决方案中有两个C#项目。项目B需要引用项目A中的代码。两个项目都需要编译为dll,然后在应用程序中使用。

在Project B中,我可以设置对项目A的引用,并允许编译。但是当我在我的应用程序中实际使用生成的dll时,它会抛出一个缺少的程序集引用错误。

我目前的解决方案是告诉Project B引用bin / debug / ProjectA.dll。使用此配置运行应用程序时,一切正常。但是这种解决方案存在许多问题。例如,在重建A之前,B依赖的项目A中编写的任何代码都不会对B可见。构建解决方案依赖于首先构建的A。

有没有办法可以添加对项目A的引用,但是生成了结果的dll,以便它查找ProjectA.dll引用,而不是项目本身?我希望有,但我的谷歌搜索没有找到答案。

1 个答案:

答案 0 :(得分:0)

  

例如,在重建A之前,B依赖的项目A中编写的任何代码都不会对B可见。构建解决方案依赖于首先构建的A。

这不是问题,在我看来,这是一个好处。因为您保证无法访问不存在的功能。如果有新功能,可以说,这不是什么大问题:我找不到它,得到异常/错误,所以我知道出了什么问题。但是更新代码怎么样?这样,您可以确保B仅使用A的最新版本。

  

是否有一种方法可以添加对ProjectA的引用但是生成了所有的dll以便它查找ProjectA.dll引用而不是项目本身?

您可以简单地在项目A上实现构建后事件,该事件会将其复制到某个预定义的中心位置以及所有相关的DLL,其中B.dll也将被复制。如果您的B.dll取决于A.dll,则在检查%PATH%变量之前,操作系统将遵循默认行为,在A.dll所在的同一文件夹中搜索B.dll内容。