构建解决方案时,为什么Visual Studio中的C#类库项目对C / C ++ DLL项目的引用中断了?

时间:2018-07-09 20:27:01

标签: c# c++ visual-studio dll

我正在创建要在Windows桌面应用程序中使用的库。该库的核心部分将是一个C / C ++ DLL,可在Win32应用程序或其他基于C / C ++的应用程序中使用。为了方便参考,我将其称为libtest.dll。我还想将其提供给Windows窗体应用程序(C#),因此我要创建一个C#类库(DLL),作为使用P / invoke(DllImport)调用C / C ++库的包装器。 C / C ++代码。我将这个库称为Test.dll

此外,我在Visual Studio中设置了一个Windows Forms项目来进行测试,该项目取决于C#类库项目。 C#类库取决于C / C ++库项目。但是,要让Test.dlllibtest.dll语句中找到DllImportlibtest.dll必须与Test.dll在同一目录中,或者在其中一个目录中。系统中的DLL搜索路径。

为了在Visual Studio中进行调试时轻松实现这一点,我认为将libtest.dll项目添加为对Test.dll项目的引用会自动将libtest.dll复制到{{ 1}}项目。当我添加引用然后构建解决方案时,引用最终会损坏并且Test.dll文件不会复制到libtest.dll的输出目录中。

当我将引用添加到Visual Studio中的Test.dll项目时,引用的属性看起来很好:

  • “本地复制”设置为Test.dll
  • 路径正确
  • “已解决”为True

但是,在构建之后,引用本身上面带有一个警告图标,并且路径现在为空,并且“已解决”为True。知道为什么,还是要解决此问题?如何在这两个库项目之间设置项目引用,以便将C / C ++ DLL复制到C#类库项目的输出目录中?我已验证两个项目的构建顺序正确:首先False,然后libtest

0 个答案:

没有答案