【问题标题】:Project refers to dlls in another project's obj folder - compiles sometimes other times not项目引用另一个项目的 obj 文件夹中的 dll - 有时编译有时不
【发布时间】:2018-01-30 22:17:39
【问题描述】:

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

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

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

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

【问题讨论】:

标签: c# c++ visual-studio


【解决方案1】:

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

祝你好运!我不知道为什么在 obj 文件夹中首先引用了 .dll。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-17
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多