【问题标题】:Copy to Output Directory in Visual Studio 2017复制到 Visual Studio 2017 中的输出目录
【发布时间】:2017-07-01 06:54:05
【问题描述】:

您好,我正在浏览本教程here

我在 Visual Studio 2017 中创建了一个控制台应用程序项目,并成功添加了对 EmguCV 库的引用。但是我正在努力处理 OpenCv 文件。

将它们添加到解决方案中,然后突出显示它们并单击属性后,“复制到输出目录”没有可用选项。

属性窗口仅显示杂项部分。如何在 VS 2017 中为这些文件启用“复制到输出目录”?

【问题讨论】:

  • 您考虑过构建后命令吗?
  • 没有。您能否提供参考或更详细的信息?
  • 复制到输出目录是在项目构建之后,对于您的项目,右键单击并转到属性,转到构建事件选项卡,然后编辑构建后,并使用命令(例如:xcopy $(SolutionDir)\opencv_core2410.dll $(TargetDir)),(注意$(SolutionDir)和$(TargetDir)是宏)
  • 我还假设您将它们用作参考,您可以右键单击参考并将 Copy Local 更改为 true
  • TargetDir 是你的 ConsoleOCR 的 bin 文件夹,SolutionDir 保存解决方案项和项目文件夹,打开编辑后构建并单击宏,你可以看到它们的等效值

标签: c# opencv visual-studio-2017


【解决方案1】:

解决方案项目是解决方案文件夹结构的一部分,不属于项目,复制到输出目录与项目构建相关,项目构建成功后将项目复制到输出目录。

在您的情况下,您想在构建 ConsoleOCR 项目时复制这 2 个 dll,您可以使用构建后事件。

转到您的项目,右键单击并选择属性。然后转到 Build Events 选项卡,单击 Edit Post-Build 并指定命令:

xcopy "$(SolutionDir)\opencv_core2410.dll" "$(TargetDir)"
xcopy "$(SolutionDir)\opencv_imgproc2410.dll" "$(TargetDir)"

我假设您在项目中使用这些 DLL 作为引用,您可以转到项目中的引用并右键单击它们,然后将 Copy Local 的属性更改为 True。

【讨论】:

  • 现在我正在尝试确定正确的文件路径。根据教程,OpenCv 项目是 c++ 项目,需要放在解决方案文件夹中,所以不幸的是没有 Copy Local to True。目前我有 xcopy "$(ConsoleOCR/Solution Items/)\opencv_core2410.dll" "$(ConsoleOCR/bin/)"
  • xcopy "$(Solution Items)\opencv_core2410.dll" "$(TargetDir)\" 不需要指定解决方案名称,因为它是相对于当前解决方案的
  • 检查输出窗口,它会显示这个命令和它的输出
  • 2017 更新:使用 robocopy;另外,如果您仍在使用 VS 2012,则不希望在 $(TargetDir) 或 $(SolutionDir) 之后使用 \' (还有一个 $(ProjectDir)
猜你喜欢
  • 2017-11-04
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
相关资源
最近更新 更多