我在一个大型解决方案中有一个控制台应用程序项目(称为app),其中包括我的应用程序需要使用的库项目(称为Lib)。
App有一个对Lib的项目引用,而Lib有一些对Nuget包的引用。当构建解决方案时,Nuget包中的二进制文件包含在Lib的bin文件夹中,但是Lib本身的二进制文件包含在App的bin文件夹中,它所依赖的Nuget包的二进制文件却不包含在bin文件夹中。
当Lib中的代码试图反映其依赖关系时,这会导致App中的运行时错误。
是否应该设置某些内容以确保包含项目依赖项的Nuget依赖项?我可以直接在App中引用Nuget包,但有很多,我宁愿找出正确的方法来确保依赖关系被解决。
您有三个选择:
- 创建一个构建后事件,将所有二进制文件从
Lib
复制到App
- 包含
App
在项目中运行所需的所有二进制文件的引用。 - 把
Lib
做成NuGet包,然后用NuGet来管理Lib
的依赖。所有的二进制文件将被包含。
选项2是我的一般方法,尽管其中任何一种情况都可以使用。