我在解决方案中有2个c ++项目 ExecB (可执行文件)取决于 ProjA (一个dll)。
因此,在 ExecB 的属性中,我添加 ProjA 作为参考,然后选择复制本地= true 。
问题是,ProjA的DLL没有被复制到ExecB的输出文件夹文件夹。所以可执行文件显然不会运行。
有什么建议吗?
答案 0 :(得分:0)
对于C ++项目,Visual Studio模板/向导将输出目录设置为解决方案的子文件夹:$(SolutionDir)$(Configuration)\
。这样DLL Search Path对开发人员来说效果很好。如果您已从解决方案文件夹层次结构外部向解决方案添加项目,它甚至可以工作;构建将把所有二进制文件放入该解决方案的输出文件夹中。
如果这不起作用,请检查所有项目的所有平台/配置组合上的输出目录属性。还要确保Build Configuration Manager显示所选解决方案构建正在构建适用于解决方案平台/配置的所有项目。
您正在尝试的“项目引用中的本地复制”仅适用于引用的.NET程序集。 docs含糊不清,而且过于简洁。 (大多数情况下,“汇编”的使用不明确意味着.NET汇编而不是WinSxS汇编。)