为啥我的项目引用指向“obj”目录中的 dll?

Posted

技术标签:

【中文标题】为啥我的项目引用指向“obj”目录中的 dll?【英文标题】:Why does my project reference point to a dll in the "obj" directory?为什么我的项目引用指向“obj”目录中的 dll? 【发布时间】:2016-10-29 07:11:50 【问题描述】:

我正在向一个项目添加项目引用,该项目已经添加了一些项目引用。如果我检查现有的属性,它们都有指向其项目的bin 目录的路径,例如:

C:\MyProject2\bin\Debug\MyProject2.dll

但是,当添加另一个项目引用时,它会以指向其obj 目录的路径结束:

C:\MyProject3\obj\Debug\MyProject3.dll

那个 dll 似乎根本不存在! (虽然这可能是因为我还不能编译整个解决方案。)

为什么一个项目引用指向 bin,另一个指向 obj?以及如何纠正?

【问题讨论】:

【参考方案1】:

我通过编辑Build Dependecies -> Project Dependencies 来解决此问题,以确保依赖项与项目引用相同。就我而言,一些引用的项目没有在Project Dependencies中被选中。

【讨论】:

这也是我的情况。项目卸载重载后,路径改为bin。【参考方案2】:

当引用的项目未构建时,引用的路径将指向 obj 目录中的 DLL。构建完成后,路径会自动指向 bin 目录中的一个(现在已经存在的 DLL)。

【讨论】:

【参考方案3】:

您可以通过在记事本中编辑项目并更改路径来轻松更正它。或者右键单击解决方案中的项目选择卸载,然后编辑。然后一旦更改右键单击项目并选择重新加载。

【讨论】:

该dll的路径不在项目文件中。工程文件只包含引用工程的csproj文件的路径。例如:<ProjectReference Include="..\..\MyProject3.csproj"> 您是否尝试过清除所有生成的目录(obj、bin),然后重新添加已删除的项目引用。这看起来是一个 VS 问题,我无法重现它。我的项目引用是 bin。 我现在尝试清理解决方案,然后添加项目引用,但结果相同。 我猜 MyProject3 已经构建并且正在构建到正常的 bin 文件夹中,没有什么奇怪的。 你发现了问题!引用的项目尚未构建!

以上是关于为啥我的项目引用指向“obj”目录中的 dll?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SQL Server 无法识别,即使我有对 DAL05.dll 的引用?

obj 目录中的 *.dll.licenses 文件不是使用 TeamCity 中的 msbuild 创建的

为啥我不能引用我的类库?

为啥我的 .net 项目针对 .net framework 3.5 的 System.dll 版本是 2.x?

C++/CLI 为啥对托管不可见

c# wpf项目中引用的dll怎么让它能自动更新?