我有一个引用托管C ++项目的C#GUI应用程序,它需要7个本机C ++ DLL。我正在寻找将这7个DLL复制到最终项目输出的最干净的方法。
什么有用
将所有DLL添加到C#应用程序,指定:
构建行动==“内容”
复制到输出目录==始终复制“
在某些情况下,这将使项目的基本文件夹变得混乱,所有这些都是引用项目的要求,而不是项目本身。
什么不起作用
在这种情况下,最佳解决方案是什么?我希望托管C ++项目能够在可能的情况下处理它自己的DLL要求,并且最好以不会阻止项目在多个应用程序中使用的方式。
就干净的项目而言,最好是将所有代码文件插入项目的子文件夹中,并在根目录下安装DLL以使第一个解决方案有效吗?
解决方案:
使用Joseph的post-build建议,以下命令可以使用“Required DLLs”文件夹。
xcopy“$(ProjectDir)必需的DLL *。*”“$(TargetDir)”/ Q / Y
/ Q隐藏输出中的单个文件,/ Y禁止覆盖提示。
答案 0 :(得分:6)
您可以使用post-build事件将目录的内容(例如,“Required DLLs”目录)复制到项目的输出目录中。
答案 1 :(得分:0)