在构建托管代码时,Visual Studio 正确(并且递归地)将引用的托管项目的 dll 复制到正在构建的项目的输出文件夹中。
但是,如果这些引用之一是依赖于非托管 dll 的托管 DLL,则这些非托管 DLL 不会复制到输出文件夹,即使它们在同一解决方案中的相应项目被列为托管 DLL 的依赖项。
我意识到可以通过让所有项目使用相同的输出文件夹来解决这个问题。对于大多数项目,我们已经这样做了,但我们更喜欢将单元测试输出文件夹分开,这会导致使用托管 Dll 和非托管依赖项的单元测试出现上述问题。
我们现在使用的解决方案是一个预构建事件来复制必要的 DLL,但这会浪费时间并且容易出错,因为每个使用托管 DLL 的项目都需要重复它。
因此,我想知道是否有办法让构建系统了解它应该在决定复制托管 DLL 时始终复制托管 DLL 的非托管依赖项?