【问题标题】:Visual C++ for linux extension : upload other projects outputVisual C++ for linux 扩展:上传其他项目输出
【发布时间】:2016-07-04 21:40:27
【问题描述】:

我正在使用Visual C++ for Linux Development 扩展来编写使用Mono 的C++/C# 应用程序。

我有一个包含 C++ 主项目和 C# 程序集项目的解决方案。

如何将 C# 项目输出上传到 C++ 输出目录,这样我就可以调试而无需自己上传所有内容?

谢谢。

【问题讨论】:

    标签: linux visual-studio visual-c++ mono


    【解决方案1】:

    Linux 扩展的 CopySources MSBUILD 任务复制项目中的以下所有项目:Content、ClInclude、ClCompile 和 None 项目。您还可以对其进行更多自定义,甚至将您自己的自定义项添加到副本列表中。

    因此,您只需将二进制文件作为项目添加到项目中即可。

    但是要远程复制到输出目录,它必须在本地的输出目录中。听起来这就是您正在尝试做的事情(C# DllImporting C/C++ 代码)。

    将 C# 项目的输出复制到 Windows 本地的 C++ 项目输出目录。输出目录将如下所示:

    C:\Users\iontodirel\Documents\visual studio 2015\Projects\ConsoleApplication50\ConsoleApplication50\bin\x64\Debug

    ConsoleApplication50 是一个 C++ Linux 控制台应用程序项目。这里的目标是使目录结构正确,这就是为什么要复制它,而不是将其添加为链接。将其复制到输出目录后,从 C++ 的项目输出目录中将二进制文件添加为现有项。您可以为此使用“添加 - 现有项目”对话框,或直接在项目文件中执行此操作。完成后,在项目文件中会如下所示:

    <None Include="bin\x64\Debug\ConsoleApplication1.exe" />
    

    注意项目与项目目录的关系,它在本地的输出目录中。

    构建后,ConsoleApplication1.exe 将被复制到 ~/projects/ConsoleApplication50/bin/x64/Debug/ConsoleApplication1.exe。

    目前有一个限制,您可以控制项目目录内部的目录结构,但不能控制外部。今天,您可以克服此限制的方法是使用 Remote Post-Build Event,它位于 Property Pages 中的 Build Events 下,通过它您可以在远程系统上执行任意命令,其中之一可以是复制文件从远程系统上的一个位置到远程系统上的另一个位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多