无法获取项目引用的依赖项
Posted
技术标签:
【中文标题】无法获取项目引用的依赖项【英文标题】:Could not get dependencies for project reference 【发布时间】:2010-10-26 04:34:01 【问题描述】:我有一个包含网站项目和 C# 库的 C# 解决方案。 编译解决方案时,网站给出消息:
无法获取项目引用“MyLibrary”的依赖项。
这不会停止 wbsite 编译和运行,直到我尝试使用 TFS 构建构建它,当此错误消息使构建失败时。
这是什么意思,我该如何解决?
【问题讨论】:
【参考方案1】:在尝试了很多事情之后,我意识到了一些事情。无论我做了什么来清除构建等,错误都不会消失。我关闭并重新打开解决方案,它就消失了。
【讨论】:
关闭解决方案是指关闭 Visual Studio? 这对我有用。关闭视觉工作室并重新打开解决方案可以解决它。行为来来去去。我有一个压缩在 zip 文件中的 Visual Studio 2015 解决方案。我解压过一次,它运行良好。然后我再次解压完全相同的文件,出现了这种行为。【参考方案2】:当您收到错误消息“无法获取项目引用的依赖项”时,可能的原因之一可能是您在解决方案中引用了另一个项目,该项目的目标框架与引用项目的目标框架不兼容.
您可以通过转到项目属性并选择左侧的应用程序选项卡来查看为项目指定的目标框架。
我写这篇文章是因为它发生在我身上,我从一个目标框架 3.5 的项目中引用了一个目标框架 4.0 的项目。
【讨论】:
谢谢。当我从具有 4.6.2 的项目中引用具有框架 2.0 的项目时,我遇到了同样的问题。 另外,“Core”不兼容“Framework”,但“.NET Standard”兼容一切。 我在从针对 .NET Framework 4.6.1 的 ASP.NET Web 窗体项目中引用针对 .NET Standard 2.0 的项目时遇到此错误,因此我会非常小心地说 .NET Standard兼容一切。【参考方案3】:在记事本中打开网站项目文件并检查参考等...可以提供帮助
【讨论】:
Visual Studio 显示引用存在并带有小复选标记,但我必须在 proj 文件中添加一个在我的例子中,被引用的项目是在 VS 2010 上创建的,而被引用的项目是 VS 2008 解决方案。 在这种情况下,只需使用记事本编辑 vs 2010 项目,并更改 ToolsVersion="4.0" 到 ToolsVersion="3.5"
【讨论】:
您也可以在项目的“属性”屏幕中进行此更改。【参考方案5】:查看您的参考资料。确保您拥有正确的 MyLibrary 项目参考路径。
我会尝试删除它并添加它。然后我会选择重建解决方案而不是构建,因为重建会删除所有 .dll 并重新构建它们。
【讨论】:
【参考方案6】:如果“TFS 构建”是指您使用的是单独的构建服务器,那么您可以尝试检查构建服务器正在使用的构建配置。
例如,当您在本地计算机上构建时,您可能会定位调试配置,而构建服务器使用的是发布配置。
在每个构建配置中,您可以确保选择“MyLibrary”项目进行构建。
【讨论】:
【参考方案7】:这是 VS SDK 中的官方错误:
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=276380
我打开了这个,我可以在那里看到以下内容:Von Microsoft am09.05.2007 嗯 19:05 bereitgestellt
感谢您的反馈。我们已经在 Visual Studio 上重现了这个错误 2005 SP1,我们正在将此错误发送到适当的组 VisualStudio 产品团队进行分类和解决。
感谢 Visual Studio 产品团队。
我认为网站项目仍然存在此错误,是的;我们使用 VS 20102 终极版。我在我的 Virtual 下的 \APP_CODE 中有一个应用程序 目录,我有 2 个 DLL,其源代码是 C#,我有 3个DLL,源代码为Oxygene, OXygene (PASCAL) from 远程对象。我只看到这个参考文件是用 DLL 写的 帕斯卡;但是当我从测试应用程序测试这 3 个 DLL 时,一切都是 很好,我的测试应用程序绝对没有问题引用任何 这 3 个 DLL 中的类或变量。那么可能有什么区别 在编译/构建中导致 VS 中的以下错误字符串 输出窗口。正如多次描述的那样,永远不会消失的错误。
无法获取项目引用“工具箱”的依赖项 获取项目引用“IMPLEM”的依赖项无法获取 项目参考“LEGACY”验证网站的依赖项
【讨论】:
我不认为这个错误是问题的根本原因。据我所知,我们没有使用托管包框架。【参考方案8】:如果您在清理和重建解决方案后仍然遇到此问题,则表示任何引用的项目都存在问题。在编译过程中检查输出窗口是否有任何警告。修复警告,它可以帮助您成功编译。
【讨论】:
【参考方案9】:“干净的解决方案”帮不上忙,有时您需要从网站项目(Bin 文件夹)中手动删除 DLL。 删除 DLL 并重新构建解决方案。
【讨论】:
【参考方案10】:在我的情况下,我在解决方案中删除了 .NET 4.6 更新程序集,其中一个项目恰好设置为 .NET 4.5,要么降级程序集,要么将项目升级到 4.6 修复它。
【讨论】:
【参考方案11】:我刚刚删除了网站项目并将其再次添加到解决方案中。但是,我注意到随后创建了 packages.config
。此配置文件以前不存在。
【讨论】:
【参考方案12】:无法获取项目引用“X”的依赖项
出现此错误的原因很多,VisualStudio 错误窗口中显示的错误消息不准确。因此混乱。
一般原因:项目“X”引用:项目 X 引用的项目/DLL 之一不工作或不兼容。
疑难解答提示
-
首先重建项目 X 并在输出窗口中观察我们的“错误”。确保满足所有依赖项,并且构建输出日志中没有错误。
如果有任何项目依赖项,请确保构建输出路径匹配。如果没有,请正确删除和添加。
在任何项目依赖项的情况下架构不匹配。确保所有引用的项目都具有相似/兼容的构建配置。
尝试分析在记事本中打开的 csproj 文件,如果上述所有步骤都正常,并且错误仍然相同,这可能会有所帮助。所以可能是 VisualStudio 的问题。
以上都失败了,而且你已经升级了框架或者更改了很多 dll 引用,那么最好关闭并重新打开 Visual Studio 再试一次。
希望这有助于节省开发时间。
【讨论】:
【参考方案13】:尝试检查项目的配置。我注意到将其更改为“任何 CPU”都可以。
【讨论】:
以上是关于无法获取项目引用的依赖项的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse 中的项目无法解析 Maven 依赖项中存在的 jars
无法加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项