c# - 项目引用另一个项目的 obj 文件夹中的 dll - 有时编译有时不编译

标签 c# c++ visual-studio

我在 Visual Studio 中有一个主要是 C# 的大型解决方案(其中大约有 24 个项目),并且(至少)其中两个项目(.csproj 文件)在其 obj 文件夹中引用了其他项目 (C++) 的 .dll 文件。有时会编译,有时不会。当它编译时,我能够查看引用的属性并看到它指向 .dll 的 obj 文件夹。当它不编译时,这些引用是空白的。

我尝试直接添加对 .vcxproj 的引用,但我收到一条错误消息,指出无法添加对 ___ 的引用。我也尝试在\release 文件夹中添加对 .dll 的引用,但我得到:

enter image description here

我应该补充一点,其中一些 C++ 库是使用 VS 2005 重新构建的,我不知道它们是否已正确升级。在 VS2017 中,他们都在旁边说“(Visual Studio 2013)”,所以我认为这就是他们的目标。

所以最终我的问题是为什么有人会添加来自 obj 文件夹的引用,我如何才能可靠地构建它?

最佳答案

我以一种可能不想被其他人使用的奇怪方式修复了这个问题,但我想我还是会发布解决方案。我进行了良好的构建(在构建服务器上)并从 obj 文件夹中收集了那些(临时的).dll,并将它们放在永久位置(已 checkin 源代码管理)并添加了对它们的直接引用。现在问题已经消失了。请注意,我确实必须将所有 .dll 的“嵌入互操作类型”更改为 True(默认为 False)。当然,如果构建这些 .dll 的代码发生变化,我们将不得不重新生成它们并在源代码管理中更新它们,但它们都非常旧,我们预计这不会成为我们的问题。

祝你好运!我不知道为什么在 obj 文件夹中有对 .dll 的引用。

关于c# - 项目引用另一个项目的 obj 文件夹中的 dll - 有时编译有时不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531439/

相关文章:

c# - MEF 可以导出/导入静态类吗?

c++ - 带有双大于运算符的 for 循环声明

使用 Visual Studio 创建大小为 100 字节的 C 程序

html - 在每个标记属性上换行并在 Visual Studio HTML 代码编辑器中保持对齐

C# - 使用 Python 文件中的方法

c# - 类型参数 'T' 与外部类型 '...' 的类型参数同名

c# - 绑定(bind)到数据库的自定义通用 IEnumerator

c++ - 有没有自动生成 doxygen 注释 block 的软件?

c++ - 我可以在同一条链上生成多个协程而不使它们重叠吗?

c# - 拼字游戏填字 C#