Visual Studio项目引用:.NET客户端如何复制DLL native + wrapper

时间:2016-02-25 16:10:17

标签: .net visual-studio dll c++-cli wrapper

我有一个VS解决方案:

  1. 原生C ++ DLL
  2. 使用1的控制台测试客户端。
  3. C#wrapper for 1。
  4. C#客户端使用1. via 3.
  5. 为了让VS复制每个客户端所需的所有DLL,当然我知道我可以手动设置构建后的操作。但是我发现只需添加项目“引用”就可以自动运行,至少在一种语言中。当.NET客户端依赖于纯粹的本机C ++库(通过包装器)时,我无法使其工作。

    如果我“添加引用”项目1.到项目2.VS负责复制DLL而不需要设置任何后构建操作。另外通过添加3.作为参考4.然而4.当然也需要1.但是VS不会让我添加一个纯粹的原生C ++项目作为.NET项目的参考 - 我认为这是原因,或者在至少在这种情况下,它抱怨“无法添加引用。”

    也许解决方案可能是将1.和3.组合成一个混合DLL,但这对我们来说是不可接受的。即使这个DLL可以与本机C ++客户端兼容,我也需要将包装器分开,因为C#的使用甚至不被我公司的标准认可,.NET客户端只是一个快速的原型。

    困难似乎源于VS在C ++和C#中的文件夹不兼容的工作方式。当我调试C ++项目2时,它直接从解决方案文件夹中的文件夹而不是项目2的文件夹运行。但是当我调试C#项目4.时,它从项目4的文件夹中的文件夹运行。由于引用而总是在项目3中找到迄今为止的DLL,但不是项目1中的DLL。这也是需要的。如果从解决方案文件夹调试了C#项目,那么确实会从项目1中找到最新的DLL,但不是这样。

    除了自定义的构建后操作之外,VS提供的任何解决方案?提前谢谢。

0 个答案:

没有答案