【问题标题】:How to reference a C++ library project from a .NET one in Visual Studio?如何在 Visual Studio 中从 .NET 引用 C++ 库项目?
【发布时间】:2010-12-17 13:01:14
【问题描述】:

我有 2 个项目

  • 一个 C++ 库
  • 使用上述内容的 .NET 应用程序

当我想运行 .NET 应用程序时,我必须手动构建 C++ 库并将二进制文件复制到 .NET 应用程序输出文件夹,这样它才能运行。

如何自动化?

【问题讨论】:

    标签: .net c++ visual-studio visual-studio-2010


    【解决方案1】:

    首先确保您已经为这两个项目找到了解决方案。右键单击 C++ 项目、属性、配置属性、常规。将输出目录设置更改为

    $(SolutionDir)bin\$(ConfigurationName)

    重复发布配置(左上角组合)。这可确保 C++ 构建使用与 .NET 构建相同的文件夹命名策略(bin\Debug 和 bin\Release)。

    现在右键单击 .NET 项目,Project Dependencies 并勾选 C++ 项目。这可确保首先构建 C++ 项目,并将构建输出复制到您的 .NET 构建文件夹中。

    【讨论】:

    • 没错,在VS2010中改变了。发布的版本适用于早期版本。
    【解决方案2】:

    您可以使用构建后事件,该事件可以在项目属性下的构建事件中找到。 如果需要,您可以编写命令来使用 MSBuild 编译您的 C++ 项目,并将生成的 dll 复制到所需的目录。

    例如 复制 ..\..\include\crash_rpt\bin\dbghelp\dbghelp.dll ..\bin\debug

    【讨论】:

    • 以及如何让.NET项目在需要的时候构建C++项目?
    • MSBuild 具有构建/重建/清理项目的选项。因此,您可以在 Pre-Build 事件中构建您的项目,然后将其复制到项目的 bin 目录中。如果没有变化,C++项目不会每次都完全重建
    【解决方案3】:

    您可以将两个项目的输出文件夹设为同一个文件夹。那么你就不需要复制了。

    【讨论】:

    • 以及如何控制构建顺序?以及如何让.NET项目先构建C++项目?
    • 将两个项目放到同一个解决方案中,然后使.NET项目依赖于C++项目。它们将按依赖顺序构建。
    猜你喜欢
    • 2011-11-28
    • 2016-11-26
    • 1970-01-01
    • 2012-10-16
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多