【发布时间】:2010-10-05 12:03:43
【问题描述】:
我有从本机 (C++) dll 调用函数的 C# 包装器代码。目前,我可以添加对 C# dll 的引用并将“复制本地”选项设置为 true。但是,作为依赖项的本机 dll 不能作为参考添加 - 因此没有“复制本地”选项。
我尝试了以下方法
-
使用构建后事件将本地 dll 从 Libs 文件夹复制到
$(TargetFolder)copy "$(ProjectDir)Libs\NQuantLibc.dll" "$(TargetDir)NQuantLibc.dll" 将本机 dll 作为现有项目包含在项目中(添加 -> 现有项目 -> 包含 dll)。此选项允许我使用“复制本地”选项。这种方法的缺点是 dll 总是显示为项目项。
我还尝试了“显示所有文件”,这让我可以看到 Libs 文件夹。然后我在项目中包含 NQuantLibc.dll 文件,它允许我设置“复制本地”选项。然而,这给了我一个意想不到的结果。它在bin 文件夹中创建了一个包含dll 的Libs 子文件夹(例如bin/debug/Libs/NQuantLibc.dll)。不理想,因为 C# dll 不存在,因此无法正确调用本机 dll。
以上两个选项都有效。有没有更好的方法将本机 dll 复制到 bin 文件夹,以便始终解决依赖关系?或者,这种情况有不同的方法吗?
【问题讨论】:
标签: .net visual-studio build post-build-event